// Adds dimensions UUID, Author and Topic into GA4
Friday, July 10, 2026
32.2 C
Singapore

Mavi Garcia clinches impressive solo victory on Stage 2 of the Tour de France Femmes at the age of 41

Mavi Garcia defied age and time to win the second stage of the Tour de France Femmes avec Zwift. 

Garcia, 41, who is racing for Liv AlUla Jayco, started her attack with 11 km to go. It looked like others might catch up with her during the last climb, but when they faltered, the Spaniard pushed forward and secured her biggest win yet. 

With this milestone, Garcia made history by becoming the first Spanish rider to win a stage at the Tour de France Femmes. Moreover, she became the oldest rider to win a stage, given the race’s new format. 

Highlights of the race

In an intense race, Garcia took her chances with 10 km left. She smoothly moved out from the peloton on the left side and built a lead of about 20 seconds during her 10-km solo ride. 

However, the gap slowly narrowed as the other riders chased her. The 2024 winner, Demi Vollering, and her former teammate Lotte Kopecky tried to catch up with Garcia but eventually failed to do so. 

Garcia then passed under the flamme rouge (1 km to go) with a 10-second lead, and she pushed hard to stay ahead. She crossed the finish line just three seconds ahead, narrowly defeating strong competitors in the sprint. She won against Dutch powerhouse Lorena Wiebes, who came in second place, and Kim Le Court Pienaar from Mauritius, who finished in third place. Le Court will also be taking the yellow jersey for the overall lead from Marianne Vos.

On social media, netizens expressed their support by saying: “The queen!!! Well deserved and amazing solo attack 🙌”, “That gave me goosebumps! What an amazing ride! 🔥”, and “What a win…so happy for her🔥” 

 

View this post on Instagram

 

A post shared by Tour de France™ (@letourdefrance)

Here is the final results of Stage 2: 

  1. Mavi Garcia (Esp/Liv-Alula-Jayco) 2 hours,  44 minutes, and  26 seconds 
  2. Lorena Wiebes (Ned/SD Worx-Protime) +3secs
  3. Kim Le Court Pienaar (Mau/AG Insurance-Soudal) same time
  4. Liane Lippert (Ger/Movistar) same time
  5. Marianne Vos (Ned/Visma-Lease a Bike) same time
  6. Kasia Niewiadoma-Phinney (Pol/Canyon-SRAM-zondacrypto) same time
  7. Demi Vollering (Ned/FDJ-SUEZ) same time
  8. Pauline Ferrand-Prevot (Fra/Visma-Lease a Bike) same time
  9. Puck Pieterse (Ned/Fenix-Deceuninck) same time
  10. Anna van der Breggen (Ned/SD Worx-Protime) same time

Here is the general classification of riders after Stage 2: 

  1. Kim Le Court Pienaar (Mau/AG Insurance-Soudal) 4 hours,  37 minutes 25 seconds
  2. Marianne Vos (Ned/Visma-Lease a Bike) same time
  3. Pauline Ferrand-Prevot (Fra/Visma-Lease a Bike) +6secs
  4. Kasia Niewiadoma-Phinney (Pol/Canyon-SRAM-zondacrypto) +10secs
  5. Demi Vollering (Ned/FDJ-SUEZ) +13secs
  6. Puck Pieterse (Ned/Fenix-Deceuninck) +15secs
  7. Anna van der Breggen (Ned/SD Worx-Protime) same time
  8. Pauliena Rooijakkers (Ned/Fenix-Deceuninck) +19secs
  9. Niamh Fisher-Black (NZ/Lidl-Trek) same time
  10. Chloe Dygert (USA/Canyon-SRAM-zondacrypto) same time
- Advertisement -

Hot this week

Why some Singaporeans stopped buying the cheapest option and started saving more

SINGAPORE: If there's one thing many Singaporeans excel at, it's finding clever ways to save money. Recently, many revealed the simple lifestyle changes that quietly ended up saving them a surpri...

Photo of helpers waiting outside maid agency puts treatment of domestic workers under the spotlight

SINGAPORE: A viral photo of several domestic helpers sitting on the floor outside a maid agency has sparked fresh debate over how migrant workers are treated in Singapore, with many netizens callin...

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks