Stage 12 of the 2008 Giro d'Italia took place on May 22, and the race concluded on 1 June. As the second half of the Giro began, Italian national road race champion Giovanni Visconti had been first in the race's overall classification, but stood little chance of winning the race as he did not have sufficient climbing skills to be a contender on the high mountain stages featured in the race's final week. Stages 12 and 13 were flat and did not change the overall standings, but stages 14, 15, 19, and 20 all contained many high climbs.

It was after stage 15 that Alberto Contador first took the overall lead that he would eventually hold through the completion of the Giro, finishing fifteen minutes ahead of Gabriele Bosisio, who had won the pink jersey from Visconti the day before. Through the final mountain stages and two individual time trials, Contador held off the challenges of defending champion Danilo Di Luca and eventual runner-up Riccardo Riccò.

Emanuele Sella of the team won three stages in the Giro's final week, as well as the overall victory in the mountains classification. He would later test positive for and confess to the use of performance-enhancing drugs, casting extreme doubt on the legitimacy of these performances.

s.t. indicates that the rider crossed the finish line in the same group as the one receiving the time above him, and was therefore credited with the same finishing time.

Stage 12 22 May 2008 — Forlì to Carpi,

This stage was flat, and was designed to end in a mass sprint finish. The final occurred on a popular Italian marathon course, with the stage dedicated to Italian marathoner Dorando Pietri.

Dionisio Galparsoro of broke away from the peloton immediately after the true start of the stage. As rain began to fall on what had previously been a sunny day, no one joined the Basque in his escape, and for much of the stage, the peloton let his advantage balloon. His maximum time gap, fourteen minutes, gradually fell to nothing as the rain intensified as the stage went on. A crash with to go thinned the field somewhat, but it was no hindrance to the peloton catching Galparsoro and a sprint finish occurring. Points classification leader Daniele Bennati started the sprint first, making his attack before the race's final left-hand turn. 's Mark Cavendish reacted to Bennati's quick acceleration once around that turn and almost overtook him in the final meters, but the photo finish resulted in a third stage victory for Bennati in this Giro.

Stage 12 result RiderTeamTime1 4h 05' 29"2 s.t.3 s.t.4 s.t.5 s.t.6 s.t.7 s.t.8 s.t.9 s.t.10 s.t.General classification after stage 12 RiderTeamTime 1 53h 05' 46" 2 + 5' 50" 3 + 6' 59" 4 + 7' 52" 5 + 7' 54" 6 + 8' 04" 7 + 8' 09" 8 + 8' 32" 9 + 8' 33" 10 + 8' 33"

Stage 13 23 May 2008 — Modena to Cittadella,

This stage was as flat as any could conceivably get. It ended with a circuit around the walled city of Cittadella, a medieval military outpost guarding Padua.

It took several tries for a breakaway to successfully come clear of the peloton in this stage. The leader of the Trofeo Fuga Cervelo (the award giving points for kilometers spent in a breakaway) Mickaël Buffaz finally got away after and nearly an hour spent riding. Josu Agirre and Paolo Bettini followed him, though Bettini quickly dropped back to the peloton. Buffaz and Agiree took a maximum lead of 8'24", at the mark, but the stage's incredibly flat profile meant any breakaway was exceedingly unlikely to survive to the finish line. At the to go mark, the peloton was all together again. and led the field in through the stage's final , much as they had in previous sprint stages. Daniele Bennati again started the sprint early, as he had the previous day, but this time Mark Cavendish had enough road to easily overtake him for the victory. The victory came two days after Cavendish's twenty-third birthday.

The day unexpectedly caused a minor change to the overall standings. An extremely fast leadout, coupled with a crash with remaining meant only 48 riders had the same time as the stage winner. The rest of the main field, another 108 riders, were 13 seconds back. Andreas Klöden, Danilo Di Luca, Vincenzo Nibali, and Gilberto Simoni were able to make the selection and gained a little time over their competitors.

Stage 13 result RiderTeamTime1 4h 11' 07"2 s.t.3 s.t.4 s.t.5 s.t.6 s.t.7 s.t.8 s.t.9 s.t.10 s.t.General classification after stage 13 RiderTeamTime 1 57h 17' 06" 2 + 5' 50" 3 + 6' 59" 4 + 7' 41" 5 + 7' 51" 6 + 7' 52" 7 + 7' 56" 8 + 8' 20" 9 + 8' 31" 10 + 8' 32"

Stage 14 24 May 2008 — Verona to Alpe di Pampeago,

This was the Giro's first stage classified as a mountain stage, though several of those previous had contained selective climbs. The first half of the stage contained three uncategorized rises in elevation, including one to . In the stage's final , there were two categorized climbs, the first-category Passo Manghen, featuring gradients of up to 15%, and a second-category summit stage finish at Alpe di Pampeago. The same climb featured in the 2003 Giro d'Italia, where the stage winner was eventual Giro winner Gilberto Simoni. Simoni had said before the stage that he would again try for victory on this climb.

The day's breakaway was large, comprising 13 riders from 11 teams. The only team with more than one rider in the group was , who had three - Joaquim Rodríguez, José Rujano, and Francisco Pérez. Other notables in the group included Christian Vande Velde, Emanuele Sella, Paolo Bettini, and Jens Voigt. The group's maximum advantage, for the time when they were all together, was 7'40", after . When Sella attacked out of this group to try for maximum mountains points on the Passo Manghen, it was totally shattered, sending some riders, including Vande Velde, back to the peloton and gapping others on the road.

At the top of the Passo Manghen, the following groups had formed: Sella alone in front, followed at 2'42" by Vasil Kiryienka and Rodríguez, then Jure Golčer at 3'00", Rujano at 3'40", Bettini, Voigt, Rinaldo Nocentini, and Charly Wegelius at 5'28", with a group of overall favorites including Alberto Contador, Riccardo Riccò, Gilberto Simoni, and Franco Pellizotti at 10'57", and race leader Giovanni Visconti and his team a further two minutes back. Simoni's team was the one pacing the group of favorites, indicating that Simoni may have been intending to make good on his pre-stage promises to try for the win again.

The groups simplified on the Pampeago climb, with Sella still well ahead out front. from the top, the first on the road 2'24" behind him were Kiryienka, Rodríguez, Rujano, and Bettini, who had consolidated into one group while Golčer, Nocentini, and Wegelius were dropped. The group of overall favorites was ten minutes back, and Visconti was eighteen minutes back, meaning his pink jersey was in jeopardy. Sella rode most of the rest of the climb out of the saddle, continuously adding to his advantage, which was four and a half minutes over Kiryienka in second on the stage. The four chasers behind him did not remain as a cohesive group; Kiryienka and Rodríguez came ahead of Rujano and Bettini, with Kiryienka attacking in the final kilometer to gain 30 seconds over Rodríguez. Bettini scarcely stayed ahead of the fast-charging group of overall favorites, finishing 49 seconds ahead of Denis Menchov, who led that group home. After the stage, Simoni criticized a perceived lack of combativeness in the riders who had been in the same group as him, calling them "a bunch of lambs."

As was expected, the stage greatly changed the overall classification, with 's Gabriele Bosisio becoming the new race leader by a margin of five seconds over Contador. Contador had been unable to respond to attacks made by Menchov, Pellizotti, Riccò, and Simoni in the final kilometer, conceding some 45 seconds to them, but he was still the highest placed rider from that group in the overall standings at the end of the day.

Stage 14 result RiderTeamTime1 5h 37' 14"2 + 4' 38"3 + 5' 08"4 + 7' 28"5 + 7' 59"6 + 8' 48"7 + 8' 57"8 + 8' 57"9 + 9' 01"10 + 9' 01"General classification after stage 14 RiderTeamTime 1 63h 10' 47" 2 + 5" 3 + 28" 4 + 1' 02" 5 + 1' 07" 6 + 1' 11" 7 + 1' 18" 8 + 1' 31" 9 + 1' 32" 10 + 1' 35"

Stage 15 25 May 2008 — Arabba to Passo Fedaia,

This stage was one of the most climbing-intensive in the race, featuring six categorized climbs. These included three second category climbs, two in the third category, and a never before used uphill finish at Passo Fedaia, a first category climb.

A flurry of attacks and counter-attacks on the slopes of the day's first climb, the second category Passo Pordoi, reached after just spent racing, resulted in a nine-man leading group forming. The first attacker was Joaquim Rodríguez, who drew mountains classification leader Emanuele Sella with him. Their leading group also included Félix Cárdenas, Jens Voigt, Vladimir Miholjević, Evgeni Petrov, Vladimir Karpets, Fortunato Baliani, and Paolo Bettini. Through the second category Passo San Peligrino and the third category San Tomaso Agordino, the group's advantage hovered at around two minutes, as Sella, Bettini, Rodríguez, and Karpets all potentially posed threats to the GC should the group get a large advantage.

On the Passo de Giau, the course's third and final second category climb, the leading group splintered. Rodríguez, Baliani, and Sella came clear, and the other six members of the initial breakaway were absorbed by a chase group composed partly of overall contenders Alberto Contador, Danilo Di Luca, Franco Pellizotti, and Gilberto Simoni. Notably missing from this group was overnight race leader Gabriele Bosisio, who would finish the day eighteen minutes behind the stage winner and lose the pink jersey. Contador was briefly gapped on the climb, but he and Jurgen Van den Broeck caught up to the 15 others in the leading group after the summit, approximately three minutes behind the three leaders.

Vincenzo Nibali and Julio Alberto Pérez came out of this group and after a lengthy chase bridged to the leaders. This gave three riders in the leading group, and Baliani and Pérez worked to get Sella to the top of the Passo Falzarego first for maximum mountains points and a leading gap. Sella stayed away for the stage win, while the group of favorites caught his two teammates and Nibali, and stayed between two and three minutes behind him for the remainder of the stage. In the steep final kilometer before the summit of the Passo Fedaia, Riccardo Riccò put in an attack that Di Luca, Contador, and Denis Menchov were unable to answer, gaining him time on his competition. Contador, however, took the pink jersey, by a margin of 33 seconds over Riccò.

Stage 15 result RiderTeamTime1 4h 53' 24"2 + 2' 05"3 + 2' 11"4 + 2' 20"5 + 2' 27"6 + 2' 27"7 + 2' 34"8 + 3' 18"9 + 3' 22"10 + 3' 27"General classification after stage 15 RiderTeamTime 1 68h 06' 43" 2 + 33" 3 + 55" 4 + 1' 18" 5 + 1' 20" 6 + 1' 26" 7 + 2' 27" 8 + 2' 50" 9 + 4' 04" 10 + 4' 41"

Stage 16 26 May 2008 — San Vigilio di Marebbe to Plan de Corones, (individual time trial)

This race against the clock was all uphill. It consisted entirely of the first category climb to Plan de Corones. Race organizers had tried to include this climb in 2006, but had to cut it short to a pass on lower elevation because of snow at the summit. The final were on a gravel road, and the last few hundred meters featured a grueling maximum gradient of 24%.