Sagan, last year’s winner of the race’s green jersey points competition, surged in the final 150 metres of the 205.5km stage from Montpellier to Albi to claim his first win of the 100th edition.
Germany’s John Degenkolb (Argos) and Italian Daniele Bennati (Saxo) finished a bike length behind in second and third respectively.
It ends a frustrating first week for Sagan, who has narrowly missed out on sprint wins on four occasions.
“The team did an incredible job and I want to thank them all,” said Sagan.
“I hope today’s win gives an answer to all the fans who had criticised me and the team on the internet. Now the pressure is off.”
A day before the first of two consecutive stages in the Pyrenees, a combination of the climbs and the pace in the peloton proved too much for sprinters Mark Cavendish and Andre Greipel.
Both were dropped in succession on the second of the day’s four small climbs, and when the news filtered through to Sagan he put his troops on the front of the main bunch and ordered them to hit full gas.
It left Cavendish and Greipel, who won stages five and six respectively, in an 84-strong group which flirted with missing the time cut-off limit.
The late arrivals crossed the finish nearly 15 minutes in arrears, but Cavendish was unperturbed.
“Over half the peloton was dropped on that climb,” said the Manxman. “It was difficult.”
He added: “There’s still a lot of sprint stages, especially the last stage on the Champs Elysees.”
German veteran Jens Voigt (RadioShack) and Frenchman Blel Kadri (ALM) lit up the early stages with an attack inside the first 20 km, the pair building a maximum lead of 6min 50sec on the main peloton over undulating terrain.
But as Sagan set his sights on the points from the intermediate sprint, and other riders came to the front to help the chase, the pair were eventually reeled in just after the 114km mark.
Sagan took the 20 points by winning the sprint at the 135km mark, but soon after Cannondale were put to work again.
Sitting only 33sec behind Impey overall, Jan Bakelants attacked in a bid to regain possession of the yellow jersey and was joined by Cyril Gautier and Juan Oroz.
For a spell it looked like Impey, with only Orica-GreenEdge teammate Michael Albasini to help him, was in danger of losing the lead.
But the South African maintained his composure as Cannondale’s efforts eventually helped close a gap that had never got above the 60-second mark.
Impey admitted the second climb that had snared many of the sprinters had tested his resolve: “There was a moment on the second climb that the pressure was on, but we handled it pretty well,” said the 28-year-old.
“But I was happy to see the top of that climb, that’s for sure.”
The escapees’ bid ended with just under 4km to race.
“I had great legs today, but unfortunately the last 10 kilometres were into a headwind,” lamented Bakelants, who wore the yellow jersey for one day after stage two.
In the closing kilometre Argos, whose main sprinter Marcel Kittel was left trailing with Cavendish and Greipel, set up the lead-out train for Degenkolb.
But their timing was flawed. Degenkolb powered to the finish but hit top speed well before the line, leaving Sagan to surge past in triumph and reinforce his grip on the sprinters’ top prize.
Sagan now has a lead of over 100 pts in the points competition, but said the green jersey was far from secure.
“So far the first seven days have gone very well, but we still have to get through the next 14,” he added.