Movistar rider Costa was the last man standing from a nine-man break that escaped less than 15km into the 189km ‘medium mountains’ stage.
Costa dropped his three remaining rivals 3km from the finish before keeping clear of Vinokourov (Astana), who faded on the final climb, with Philippe Gilbert (Omega Pharma-Lotto) finishing second ahead of Cadel Evans (BMC) to reclaim the green points jersey.
Portuguese Costa summited the penultimate climb of Col de la Croix Saint-Robert – the first category two ascent of the Tour – just behind American Tejay Van Garderen (HTC-Highroad), new leader of the King of the Mountains classification, while Cyril Gautier (Europcar) and Christophe Riblon (Ag2r) caught the lead duo on the descent.
Back in the peloton, 37-year-old Vinokourov launched his attack in a bid for a fifth Tour de France stage win before retiring at the end of the season.
Vinokourov soon overturned his 32 second general classification deficit to become the virtual race leader on the road and looked set for a career-first yellow jersey, with the Kazakh just 17 seconds behind Costa ahead of the final 2km drag.
But Vinokourov’s efforts soon showed, with the Astana man quickly fading before being swept up by the chasing bunch, which included the 80kg Classics specialist Hushovd, who had hauled himself over the day’s four categorised climbs to bravely defend the maillot jaune that he has worn since his Garmin-Cervelo team won the stage two team time trial.
Stage one winner Gilbert made a late escape from the front of the peloton, finishing 13 seconds behind 24-year-old Costa to bolster his green jersey campaign, leaving Evans to win the battle for third a further three seconds back.