// Adds dimensions UUID, Author and Topic into GA4
Tuesday, July 28, 2026
28.3 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

SG woman uneasy as BF continues partying with his all-female friend group: ‘He once had a thing for one of them’

SINGAPORE: A Singapore woman has asked Reddit if she's right to feel uneasy after realising her boyfriend's social circle is made up almost entirely of women, including someone he once had a crush ...

‘Dark days are temporary,’ says mid 40s Singaporean after 20+ years of working just to survive in Singapore

SINGAPORE: A Singaporean man in his mid-40s shared encouragement to netizens struggling with debt and joblessness—those feeling helpless and depressed—that the “dark days are temporary. ” In a pos...

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