Third seed Roger Federer subdued some fierce Stan Wawrinka resistance to beat his fellow Swiss 7-6(4) 4-6 7-6(5) 6-4 and reach the French Open semi-finals.

Wawrinka had beaten Federer four years ago at the same stage at Roland Garros, but this time he came up just short in a high-quality clash that had the fans on the edge of their seats.

Federer will now face defending champion Rafael Nadal in the semi-final in what will be the 39th instalment of their rivalry.

The 37-year-old took a tight opening set but 24th seed Wawrinka broke early in the second on his way to levelling it.

Wawrinka appeared to be gaining the upper hand when he broke the Federer serve midway through the third set but Federer hit back immediately and played a another great tiebreaker.

Dark storm clouds closed in as the battle continued in the fourth set and play was interrupted for an hour at 3-3.

On the restart Wawrinka dropped serve at 4-4 to leave Federer serving for the match.

He double-faulted on one match point and needed to save a break point but finally sealed victory with a volley. 

Nadal eased into a 12th semi-final with a brutal victory over seventh seed Kei Nishikori.

Nadal dropped just five games in a 6-1 6-1 6-3 win against an admittedly tired opponent, who had been pushed to five sets in his previous two matches.

Nishikori could find nothing with which to hurt Nadal and the Spaniard, who turned 33 on Monday, will now look to maintain his record of never having lost at Roland Garros once he has reached the last four.

The only thing that held him up was a brief thunderstorm in the third set.

Nadal looked decidedly unhappy to be instructed to leave the court at 4-2 but wasted little time wrapping things up on the resumption.