Rui Costa makes rainbow jersey history for Portugal
Gold medalist Portugal's Alberto Rui Costa crosses the finish line of the elite men's road race UCI World Championship on September 29, 2013 in Florence
Rodriguez finished second to take the silver with compatriot Alejandro Valverde taking bronze at the end of the rain-hit 272.2 km epic that claimed several pre-race favourites as well as the entire British team.
Italy's Vincenzo Nibali had to settle for fourth after he had valiantly fought back from a crash ahead of the thrilling finale in the final stages of the 10th and last lap of the race's hilly 16.9 km circuit around Florence.
Rui Costa, who won two stages at July's Tour de France as well as the Tour of Switzerland, succeeds Philippe Gilbert of Belgium as world champion.
Gilbert's Belgian team looked among the strongest amid a reduced, 42-man field on the final lap, by which times the heavy rain which plagued the course throughout had abated.
However the defending champion, as well as pre-race favourite Fabian Cancellara of Switzerland, were among those unable to respond when Rodriguez countered an attack by Nibali late on the second of the circuit's three climbs.
Nibali looked set for a duel with Rodriguez when the Spaniard countered his attack on the 600-metre Via Salviati climb, where the maximum pitches were a whopping 16 percent.
But despite opening up a five-second gap on Colombian Rigoberto Uran, Costa and Valverde at the summit, the pair's advantage was never going to be enough.
The three chasers soon had Rodriguez and Nibali in their sights on the 5.5 km descent towards the finish line.
However disaster struck for Uran, who won Olympic road race silver in London last year, when he misjudged a gradual left hand bend, braked hard and went over the handlebars to land in a ditch.
Rodriguez dug deep, opened up a small gap on Nibali and the Italian was left with the unwelcome Valverde and Rui Costa on his wheel with a little under 5 km remaining.
Rodriguez, one of the peloton's best on short, punchy climbs, started the final challenge -- a steep rise whose summit was 2.8 km from the finish -- with an 11sec lead on his chasers.
Despite being caught near the top, the Spaniard attacked again to open up a slight gap which he maintained for most of the descent.
With Nibali being marked by Valverde, the Italian could do little when Rui Costa went off in chase of Rodriguez.
As the 26-year-old Portuguese powered down on Rodriguez in the final 200 metres to outsprint the Spaniard at the finish, Nibali was outpaced for third by Valverde 15secs later.
Gilbert eventually crossed the finish line in ninth place at 34secs adrift, with Cancellara on his wheel.