Serena Williams has earned a spot in the final of the Miami Open by beating third seed Simona Halep 6-2 4-6 7-5.
Despite matching the world number one for long spells of the semi-final, Halep paid the price for committing too many errors late in the match as Williams set up a meeting with Carla Suarez Navarro, who cruised past Andrea Petkovic to reach the final.
A sluggish start on serve from Williams invited pressure in the first set, but the American often fought her way out of trouble in the longer rallies before taking the opener with her second break of serve.
Despite taking the lead, the top seed still looked short of her best as a first-serve percentage of 40% offered chances to Halep, who was rewarded for an excellent set of tennis with a break in the ninth game.
Halep converted set point at the second attempt to get back on level terms, but the advantage was back with Williams as she raced into a 3-0 lead in the decider.
Saving break point in the fifth game looked to be crucial for Williams, but there would be another twist when a sloppy service game while looking to wrap up the win allowed Halep to get back on terms.
However, Halep ruined the hard work by allowing Williams to break to love in the 12th game and complete a victory which keeps her on course for a first title since triumphing at the Australian Open in January.