Dylan Groenewegen of Team LottoNL-Jumbo won stage seven of the 2018 Tour de France ahead of Fernando Gaviria and Peter Sagan after a bunch sprint finish in Chartres.