Novak Djokovic's long winning streak has been halted by Switzerland's Roger Federer. 

Federer, 29 has upset Djokovic three sets to one (7-6, 6-3, 3-6, 7-6) at the French Open.

Now, Federer will face world No.1 Rafael Nadal and has an opportunity to gain a fourth French Open Championship for himself. Djokovic had not lost since Federer won beat him on November 27 last year in the semifinals of the World Tour Finals. He would have gained the No.1 ranking with a win Friday.

He had won 41 consecutive games before losing to Nadal this year. Djokovic failed to surpass John McEnroe's 1984 record of 42 wins from the start of the season.On the other hand, Nadal out-battled Murray and improved to 44-1 all-time at the French Open with the win.

Nadal celebrated his 25th birthday Friday by getting a 6-4, 7-5, 6-4 victory over fourth-seeded Murray. 

Nadal and Federer have the record for the most men's Grand Slam final matchups in the Open Era (since 1968). 

The final will take place this Sunday (9 a.m. ET) and the final winner will collect $1.7 million. 

Nadal is playing strongly (4-0) against Federer at Roland Garros, with three wins in finals and a semifinal victory in 2005.