Spanish star Rafael Nadal has upset world No. 1 Roger Federer of Switzerland to set up a final match against Mariano Puerta of Argentina at the French Open in Paris.

In the waning light because of a one hour, 40 minute rain delay, Nadal was able to beat the Swiss number one player in four sets, 6-3, 4-6, 6-4, 6-3.

It was the first time that Nadal has beaten Federer.

The 19-year-old Spaniard will take on Argentina's Mariano Puerta in Sunday's final. Puerta scored a five-set win over 12th-seeded Russian Nikolay Davydenko in three and one-half hours, 6-3, 5-7, 2-6, 6-4, 6-4.

The women's final is Saturday with two former champions facing one another -- 2003 winner Justine Henin-Hardenne of Belgium and 2000 champion Mary Pierce of France.

Some information for this report provided by AP.