Cardiff-born Geraint Thomas retained the yellow jersey as Omar Fraile won stage 14 of the Tour de France from the breakaway.
The top three in the GC standings crossed the line together as Thomas followed home team-mate Chris Froome and Team Sunweb's Tom Dumoulin, with the trio eight seconds behind LottoNL-Jumbo's Primoz Roglic.
The Slovenian, fourth overall, attacked three kilometres from the finish to pick up a handful of seconds.
But others struggled, most notably AG2R La Mondiale's Romain Bardet and Movistar pair Mikel Landa and Nairo Quintana.
Quintana gave up 10 seconds to Thomas, while Bardet was 14 seconds back and Landa 29.
There were further signs of the ill-feeling towards Team Sky and Froome in the finale, with several fans booing and gesturing towards the Sky riders, while Froome had what appeared to be a clear liquid thrown at him.
UAE Team Emirates' Dan Martin was not with the main group after suffering a puncture one kilometre before the climb while Adam Yates' recent struggles continued as he was dropped as soon as the road went up.
The provisional general classification showed Thomas retaining his lead of one minute 39 seconds over Froome, with Dumoulin a further 11 seconds back.
Roglic is now two minutes 38 seconds down in fourth, with Bardet's deficit to yellow growing to three minutes and 21 seconds.
After going clear of the remnants of the breakaway 35km from home, Stuyven hit the final climb with over a minute and a half in hand, but could not hold off Fraile.
When Alaphilippe also bridged over, the pair briefly combined to try to chase down Fraile, but the Spaniard was too far ahead and had plenty of time to enjoy his first career Tour stage win.