(CNN) -- In-form Mardy Fish upset top seed Andy Roddick to ensure an all-American final for the second year in a row at the Atlanta Tennis Championships.
Sixth seed Fish will face No. 2 John Isner on Sunday after beating his longtime friend for the first time since 2003 to reach his third final in his past four tournaments.
Fish, who has lost more than 13 kilograms in weight since having knee surgery last September, triumphed 7-6 (7-5) 6-3 to end a run of nine defeats against the former world No. 1.
"You'd be amazed by taking away 30 pounds how much harder you can go. I can work and train harder," he told the ATP Tour website.
"It's one of the best wins I've had. It's tough to beat a great friend. He said to me at the net: 'I know how hard you've worked, so enjoy it.' I've put away a lot of things I enjoy."
Fish did not drop a service game despite managing just a 40 percent first-serve ratio, and he broke Roddick in the sixth game of the second set.
"Mardy did a good job on his second serve, dropping it short in the box and getting action out wide," Roddick said. "He was taking that first ball and dictating with it. When someone is executing that well, a lot of it will be out of your control."
Fish, who has yet to drop a set in four matches, beat the big-serving Isner in their only previous meeting in San Jose last year. Both have won one title this year.
Isner battled into the final with a 6-3 6-7 (7-9) 6-3 victory over unseeded South African Kevin Anderson in scorching hot conditions.
"The conditions were just brutal. It took a lot out of me," Isner said.
"But thankfully then the cloud came across [during the second set]. Honestly, the temperature dropped so much. Without clouds the sun was just beaming down.
"I felt the court temperature dropped significantly and made it a lot easier to play. I held a match point on my serve in the second set. I had to think about that, so I was thrilled to get through the match."
Meanwhile, Andrey Golubev upset third seed Jurgen Melzer to win the German Open title on Sunday and become the first player from Kazakhstan to claim an ATP World Tour title.
Golubev, who earlier knocked out top seed Nikolay Davydenko, won 6-3 7-5 just three days after his 23rd birthday.
Melzer, playing his ninth career final, had won their only other meeting in 2008 but the 23-year-old Golubev avenged that to triumph in just his second title match on the men's circuit.