Roger Federer continued his stunning start to 2017 by reaching the Miami Open semi-finals with a dramatic win against Czech 10th seed Tomas Berdych.
The 35-year-old Swiss survived two match points in the deciding tie-break before winning 6-2 3-6 7-6 (8-6).
Berdych double-faulted on Federer’s second match point to gift victory to the 18-time Grand Slam champion.
In the women’s draw, former world number one Caroline Wozniacki reached the final by beating Karolina Pliskova.
The Dane, ranked 14th in the world, dropped a gruelling 62-minute opening set against the Czech second seed before recovering to win 5-7 6-1 6-1.
Federer, who claimed his first major for five years at the Australian Open in January, served for the match at 5-3 in the deciding set, only for Berdych to break to love and go on to force a deciding tie-break.
However, he choked at the crucial moment as his losing streak against Federer – which goes back to March 2013 – was extended to a seventh match.
Federer’s progression means a meeting with long-time rival Rafael Nadal in Sunday’s final remains a possibility.
Spain’s 14-time Grand Slam champion Nadal, who lost to Federer in Melbourne, recorded a 6-2 6-3 win over American Jack Sock to reach the last four.
He faces Italian Fabio Fognini, who became the first unseeded player in 10 years to make the semi-finals by beating Kei Nishikori.