In a bizarrely underwhelming match, Federer capitulated in the second and third sets as Djokovic remained on course to become the first man in 43 years to hold all four Grand Slam titles at the same time.
The match had been anticipated as the semi-final of choice after Federer triumphed in four classic sets in the last four of the French Open in 2011.
But, despite leading by a double break in the second set as he looked to level the clash, the world number three produced an error-riddled performance in admittedly windy conditions.
Djokovic, too, was far from at his best and will have to improve considerably if he is too seriously challenge six-times champion Rafael Nadal in Sunday’s final, the world number two demolishing David Ferrer 6-2 6-2 6-1 in the earlier semi.
The start of the match was delayed after rain began to fall on Roland Garros as the players completed their warm-up, although the rest of the clash was managed without a break despite a poor forecast.
After a solid start on serve from both men, it was Federer who made the first move; back-to-back ferocious inside-out forehands from the Swiss player causing Djokovic all kinds of problems as he broke in the fifth game.
But just as quickly as the Federer forehand arrived in the match it disappeared again, the shot completely disintegrating as he conceded his serve in the very next game before giving Djokovic further chances in the eighth game.
Federer did manage to rein the wayward shot in, however, and kept himself in touch with a hold from 30-30 but Djokovic cruised through an easy hold of his own before again taking advantage of Federer’s forehand to seal the set a game later.
While not exactly scintillating, the first set had been straightforward enough to give no hint of the bizarre turn the match was to take, Djokovic producing some lethargic play to gift Federer the momentum only to see the world number three self-destruct while leading comfortably.
More forehand errors from Federer seemed to help Djokovic get the set off to the perfect start but a tired-looking forehand into the net from the Serb handed Federer a break point, something he took full advantage of with a smash winner.
The 16-times Grand Slam winner then doubled his advantage, with a huge yell of “come on”, two games later when Djokovic slapped another forehand long of the baseline.
Despite conceding the second break immediately, Federer still looked comfortable in his bid to level the match, especially when he earned himself another two break points in the seventh game to go 5-2 up.
The first went begging however when Federer hit long, while Djokovic saved the second with a drive volley winner. Even a third chance came and went as Federer hit a backhand into the net and the Serb somehow held on.
From there it was all down-hill for Federer as he first conceded his serve to love before restoring his break advantage with a vicious backhand winner only to fall apart serving for the set, sending a forehand sailing well long of the baseline on break point.
Djokovic held to sneak ahead before Federer’s forehand let him down yet again as he sent a regulation forehand long down the centre of the court after going to the trouble of running round the ball.
Federer never looked like getting back into the match from two sets to love down, Djokovic breaking in the sixth game when Federer dumped the ball into the net.
And Djokovic had little trouble serving out the match, despite squandering a first match point with a backhand into the net, when Federer, fittingly for the match, hit a forehand error for a subdued exit.