(CNN) -- American Ryan Palmer birdied the last two holes to snatch the halfway lead at the Sony Open in Hawaii.
Joint first-round leader Robert Allenby had remained on top until late in the day on Friday after carding a second-round three-under-par 67, but he was joined on eight-under 132 by defending champion Zach Johnson (67) and Chad Campbell (64).
Then Palmer, who was one of six players to share the lead on Thursday after an opening 65, went one stroke clear as he signed for a 66.
Former Masters winner Johnson also birdied his last hole, the par-five ninth, as he battled back from a triple-bogey at 17 on his front nine.
World No. 3 Steve Stricker was tied for fifth on 133 after a 67, along with fellow Americans John Merrick (68) and Jeff Quinney (67).
Masters champion Angel Cabrera of Argentina was another stroke adrift after a 68, tied with Americans Davis Love (69), Troy Matteson (67) and Shane Bertsch (68).
Allenby is still struggling with an ankle problem, with the Australian -- whose most recent of his four PGA Tour titles was back in 2001 -- having damaged it stepping off a curb earlier in the week.
"The swelling's down but I'm still very gun-shy on trying to make any decent swings," he told reporters. "It's just a question of staying patient. I know I'm going to hit a lot of bad shots, that's just the way it is.
"I can't rotate properly and I can't come through the ball properly. I'm just making do with what I've got and just relying on my short game really."
Major winners Lucas Glover, Rich Beem and Justin Leonard were among the players to miss the cut in the second event of the PGA Tour season, along with Britain's Luke Donald.
Meanwhile, Charl Schwartzel is on course for a second successive European Tour title on native soil as he takes a four-shot lead into the final round of the Joburg Open in South Africa.
The 25-year-old, who won the Africa Open last Sunday, fired a seven-under-par 64 in Saturday's third round to be on 18 under.
His next closest challenger was Darren Clarke, with the 40-year-old Irishman carding 67 as he continues his bid to regain his place in Europe's Ryder Cup team this year.
South Africa's Hendrik Buhrmann was third on 12 under after a 69.