ADVERTISEMENT

Tour de France: Jonathan Milan wins Stage 8 in sprint finish

Published Jul 13, 2025 01:33 pm

At A Glance

  • Milan overtook Australian Kaden Groves on his left and held off Belgian rider Wout van Aert to beat him by about half a bike length. Milan won Olympic gold with Italy in team pursuit at the 2021 Tokyo Games and this was his first Tour stage win to go with four on the Giro d'Italia.
Italy's Jonathan Milan, wearing the best sprinter's green jersey, celebrates as he crosses the finish line to win the eighth stage of the Tour de France cycling race over 171.4 kilometers (106.5 miles) with start in Saint-Meen-le-Grand and finish in Laval Espace Mayenne, France, Saturday, July 12, 2025. (AP Photo/Mosa'ab Elshamy)
Italy's Jonathan Milan, wearing the best sprinter's green jersey, celebrates as he crosses the finish line to win the eighth stage of the Tour de France cycling race over 171.4 kilometers (106.5 miles) with start in Saint-Meen-le-Grand and finish in Laval Espace Mayenne, France, Saturday, July 12, 2025. (AP Photo/Mosa'ab Elshamy)
LAVAL, France (AP) — Italian rider Jonathan Milan timed his attack perfectly to win the eighth stage of the Tour de France in a sprint finish on Saturday, July 12.
Milan overtook Australian Kaden Groves on his left and held off Belgian rider Wout van Aert to beat him by about half a bike length. Milan won Olympic gold with Italy in team pursuit at the 2021 Tokyo Games and this was his first Tour stage win to go with four on the Giro d'Italia.
Defending champion Tadej Pogačar kept the yellow jersey after finishing in the main pack.
After Friday's tough grind, the peloton set off at a slower pace on a sun-baked Stage 8, starting from the Brittany commune of Saint-Méen-le-Grand and taking riders 171 kilometers (106 miles) to Laval in western France.
The main teams had no will to set a high pace, so the peloton trundled along through country roads until two riders —- French teammates Mathieu Burgaudeau and Matteo Vercher — broke away with about 80 kilometers left.
The peloton did not respond, continuing to roll at a lethargic pace for a long time with no team deciding to lead the chase.
“It was a much more relaxing stage than the previous ones," Pogačar said. “It has been a good day out in order to recover from the many efforts we have already done.”
Pogačar even had time to check how his girlfriend Urška Žigart was doing on the women's Giro. She finished seventh on Stage 7.
“I'm always nervous on the bike when she is racing, and it's great to hear about her,” he said. "When she does well, I feel super happy.”
The pack was taking it a bit too easy in his race, though.
When sprinters realized they were in danger of missing out on a stage win, the peloton's speed had to increase eventually, and the two riders were finally caught with nine kilometers left.
After a sinewy route near the finish, Stage 2 winner Mathieu van der Poel accelerated to put his Alpecin–Deceuninck teammate Groves into a good position, but they attacked a little too soon.
Milan anticipated this, made his own move and withstood Van Aert's late attack behind him. The trio clocked 3 hours, 50 minutes.
“It was a tough finale. I was in the front positions and I waited for the right moment to launch my sprint,” Milan said. “I gave it all and it worked out.”
In the overall standings, double Olympic champion Remco Evenepoel remained 54 seconds behind Pogačar in second place. Frenchman Kévin Vauquelin was third at 1 minutes, 11 seconds, and two-time Tour champion Jonas Vingegaard sat 1:17 behind in fourth spot.
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.