Italy's Vincenzo Nibali held off Chris Froome's challenge to win the Tirreno-Adriatico race by 23 seconds.
The Astana rider, 28, finished 12th in the closing 9.2km time trial stage in San Benedetto del Tronto.
Froome, riding for Team Sky, finished sixth in the stage, won by Germany's world time trial champion Tony Martin.
But the Briton could not eradicate the 34-second lead Nibali held going into the last day, and ended the race second overall.
Nibali had grabbed the race lead from Froome by finishing second in Monday's penultimate stage in the mountains around Porto Sant'Elpidio, almost a minute ahead of the British rider.
Spain's Joaquim Rodriguez, meanwhile, lost the grip on third place he had claimed in the mountains on Monday.
He could only manage 33rd place in the time trial, 13 seconds behind fellow countryman Alberto Contador - who took the final podium position.
Omega Pharma-Quick Step's Martin won the stage, six seconds ahead of Lampre-Merida's Italian rider Adriano Malori and 10 clear of Movistar's Andrey Amador Bakkazakova of Costa Rica.
Monday's stage, which saw the climbers tackle a 27% incline up the Muro di Sant'Elpidio three times, forced a large number of riders - including Britain's Mark Cavendish and Luxembourg's Andy Schleck - to retire early, while considerably shaking up the overall standings as Nibali finished almost a minute ahead of Froome to build a 34-second lead.
Such was the difficulty of the stage that race director Michele Acquarone admitted that organisers must "learn from mistakes".
Replying to some of his followers, Acquarone wrote: "If you lose half your peloton, you just have to be honest and learn from mistakes.
"If riders are not happy, fans are not happy and I'm not happy too. Sometimes it's not easy to find the right balance."