(CNN) -- Mark Cavendish finally had reason to smile at the Tour de France, winning the 13th stage to make up ground on Peter Sagan in the race for the green jersey.
But Cavendish's fellow Brit, Chris Froome, didn't have as good of a day since main rival Alberto Contador cut into his overall lead.
"It was a difficult stage, it was a nervous stage, but finally I'm so excited to win," said Cavendish. "It's been a difficult few days and it's nice to be on the podium again."
Cavendish, who won his second stage this year and 25th all time, became embroiled in controversy Tuesday when he collided with Tom Veelers as part of a sprint finish.
Although he was cleared by race officials, Veelers heavily criticized Cavendish and called for him to be thrown out of cycling's most prestigious race.
Cavendish was then sprayed with urine by a fan as the difficult days continued and edged by Marcel Kittel on Thursday in another sprint finish after seemingly looking in control.
On Friday, though, Cavendish cruised past Sagan at the finish line.
He was part of a group of racers who broke away from the pack -- Contador included -- with about 18 miles of the relatively flat 107-mile stage remaining.
Cavendish said his Omega Pharma-Quick Step teammates carried him throughout the stage.
"They gave everything for me yesterday and I let them down," said Cavendish, now 84 points behind Cannondale's Sagan. "Today I just sat there while eight guys rode until their legs fell off.
"I didn't really do anything today. I just crossed the finish line first. In the end it was just Sagan and myself. I was really happy to beat him."
Team Sky was unable to keep pace with the breakaway pack as crosswinds became a factor, leaving Froome behind two-time race winner Contador.
Froome didn't benefit from the support of Edvald Boasson Hagen, who was ruled out of the Tour after breaking his shoulder Thursday.
"I desperately wanted to get on to the Contador move but I was sitting a little too far back," said Froome. "I was just behind Cav's wheel when he sprinted across.
"I think he was the last guy to get across and again it's another reminder that this race is 100 percent open and that there is still everything to race for."
His lead of three minutes, 25 seconds shrunk, although it wasn't Alejandro Valverde in second. The Movistar rider slipped to 16th overall when he collided with another racer and damaged a wheel.
Dutchman Bauke Mollema moved into second, 2:28 behind Froome, and Saxo-Tinkoff's Contador shaved a minute off Froome's advantage to pull to within 2:45.
"I knew I had a really good buffer already -- almost four minutes on Contador," said Froome. "And okay, I worked really hard to get that time gap but you can't win them all.
"It was a really tough day. I don't think anyone was expecting it to be this hard.
"On paper it was a flat day and it should have been a bunch sprint but with those crosswinds it definitely made the race a lot more exciting."