Roger Federer beat big-hitting Chilean Fernando Gonzalez 2-6, 6-2, 6-3, 6-4 on Wednesday to reach the semi-finals of the French Open.
The usually elegant Federer, runner-up the last two years, regained his composure after a wayward start to earn victory in just over two hours and set up a clash with Spanish fifth seed David Ferrer or unseeded Frenchman Gael Monfils.
Gonzalez, the number 24 seed, could hardly believe his luck when Federer sprayed his forehand all over the place to hand the Chilean the first set on a plate.
But the Swiss lifted his game to level the match and after coming from 0-40 down to hold serve in the opening game of the third set, prompting Gonzalez to smash his racket, he eased through to the last four.