Venus Williams beat sister and world number one Serena 6-1 2-6 7-6 (7-3) to reach the final of the Dubai Open.
Venus's victory means she now leads Serena 10-9 in head-to-head meetings.
World number six Venus, 28, will play world number 58 Virginie Razzano of France, who beat Kaia Kinepi of Estonia 6-1 6-2, in Saturday's final.
Razzano has beaten top 10 players Dinara Safina and Vera Zvonareva on the way to the final, as well as former top 10 player Daniela Hantuchova.
Serena double-faulted twice as Venus broke for a 1-0 lead and then twice more when Venus broke again to go 4-1 up.
While Serena struggled in the opening set, her sister swept through her three service games without conceding a point.
Serena struck the ball much better in the second, forcing errors instead of making them, and broke serve in the third and seventh games to level the match.
In a competitive final set, Serena broke to lead 2-1 and then saved three break points with aces in a remarkable sixth game before conceding a fourth break point.
Venus then had to serve her way out of trouble at 5-5, firing two aces on break points before going on to take the tiebreak 7-3.
"I didn't serve that well and I thought Venus served really well which I think ultimately helped her win the match," said Serena, who experienced problems with her left leg.
"I'm just playing every match as hard as I can whether I'm hurt or not. I've just been playing a lot of matches, more than I have in my career, and I'm a little tired."