Jannik Sinner stormed back from a set down to glean revenge over Carlos Alcaraz and set up a Miami Open final showdown with Daniil Medvedev.
The Italian world number 11 came up trumps 6-7 6-4 6-2 in just over three hours to deny Alcaraz - the reigning Indian Wells Masters champion - a Sunshine Double.
Two weeks ago in California, Alcaraz had got the better of Sinner in straight sets in their Indian Wells semi-final, and an identical story could have been on the cards in a closely-contested first set.
Alcaraz won the first set in their Indian Wells semi-final 7-6, and the Spaniard incredibly did so again in Miami, as Sinner let a 4-1 lead slip from his grasp to give the Spaniard the upper hand.
The pair traded two breaks in the second set before an error-strewn ninth game from Alcaraz crucially handed Sinner another break for a 5-4 lead, and the 21-year-old ensured that Masters lightning would not strike twice with a hold to force a third set.
As physical problems began to rear their ugly heads for Alcaraz, Sinner took full advantage, clinching the double break for a 5-2 lead and firing a cross-court forehand beyond Alcaraz's reach to advance to the final.
The 21-year-old will compete for his maiden Masters honour against Medvedev, who beat compatriot Karen Khachanov 7-6 3-6 6-3, while Alcaraz's spot at the top of the ATP Rankings will soon be seized by Novak Djokovic.
Cirstea had sent Australian Open winner Aryna Sabalenka packing in the quarter-finals, and she was on course for another shock result with the first break of the match in the sixth game.
However, Cirstea squandered two set points during a late collapse, as Kvitova won five games in succession to clinch the first set, and her counterpart would struggle to recover.
Kvitova broke Cirstea's serve in the first game of the second set, and the Romanian had no answers for the remainder of the match, as Kvitova took her second match point with a rocket of a serve that Cirstea failed to adequately connect with.
A meeting with Wimbledon and Indian Wells champion Elena Rybakina - who overcame Jessica Pegula in the last four - now awaits the 33-year-old, who had hitherto never gone beyond the quarter-final in Miami.