Mohorič held on for the win with Stuyven being able to hold off the rest to take second and Magnus Cort sprinting to third with Van der Poel and Wout Van Aert getting back to Asgreen.
Richard Carapaz was also caught with Julian Alaphilippe (Deceuninck - Quick-Step) leading in the GC group catching the Ecuadorian on the line.
Primož Roglič lost around three minutes to the other big-name GC favourites as he continues to suffer from his stage three crash.
Stage eight heads into the mountains as we finally get to the Alps with a 150.8km route from Oyonnax to Le Grand Bornand with five categorised climbs likely making it another day for the GC riders.
Tour de France 2021 stage seven, Vierzon to Le Creusot (249.5km)
1. Matej Mohorič (Slo) Bahrain Victorious, in 5-28-20
2. Jasper Stuyven (Bel) Trek-Segafredo, at 1-20
3. Magnus Cort (Den) EF Education-Nippo, at 1-40
4. Mathieu van der Poel (Ned) Alpecin-Fenix
5. Kasper Asgreen (Den) Deceuninck-Quick-Step
6. Franck Bonnamour (Fra) B&B Hotels p/b KTM
7. Patrick Konrad (Aut) Bora-Hansgrohe
8. Wout van Aert (Bel) Jumbo-Visma
9. Brent Van Moer (Bel) Lotto-Soudal, all at same time
10. Dorian Godon (Fra) Ag2r Citroën Team, at 1-44
General classification after stage seven
1. Mathieu van der Poel (Ned) Alpecin-Fenix, in 25-29-17
2. Wout van Aert (Bel) Jumbo-Visma, at 30 seconds
3. Kasper Asgreen (Den) Deceuninck-Quick-Step, at 1-49
4. Matej Mohorič (Slo) Bahrain Victorious, at 3-01
5. Tadej Pogačar (Slo) UAE Team Emirates, at 3-43
6. Vincenzo Nibali (Ita) Trek-Segafredo, at 4-12
7. Julian Alaphilippe (Fra) Deceuninck-Quick-Step, at 4-23
8. Alexey Lutsenko (Kaz) Astana-Premier Tech, at 4-56
9. Pierre Latour (Fra) Team TotalEnergies, at 5-03
10. Rigoberto Urán (Col) EF Education-Nippo, at 5-04.