Austrian Bernd Wiesberger shot his second successive 65 to lead the Portugal Masters by one with a round to play in Vilamoura.
England's Ross Fisher had been three clear at halfway, but could not keep the 27-year-old from Vienna at bay as he continued his quest for a third victory of the season.
Even when Fisher, without a win since his Ryder Cup debut two years ago, made four birdies in five holes around the turn, Wiesberger matched them all to stay one behind.
He then drew level with an 18ft putt on the 14th – his sixth birdie in seven holes – and moved in front for the first time when Fisher failed to get up and down after missing the final green.
Wiesberger, who stands 13 under par, said: "After seven holes I was not thinking about a 65, but then I played beautifully. It could have been a bit lower, but I'm very happy."
Fisher, playing on with a strained ligament in his left foot suffered when he slipped coming off the first tee in his second round, said: "I was disappointed to drop a shot on the last. I tried to keep my neck out in front, but there's still a lot of golf to play."
Joint third on nine under are the Irishman Shane Lowry, England's Richard Finch and, in a sudden return to form, the New Zealander Michael Campbell. The 2006 US Open champion is ranked 607th in the world and has not had a top-10 finish on the European Tour since 2008. Two seasons ago, he made only one cut in 19 starts.