Van Avermaet now holds a two minute, 22 second lead over British rider Geraint Thomas.
"It was a boring stage, no wind, no stress just boring, I was talking to everybody", he said.
Van Avermaet picked up a one-second bonus overall during an intermediate bonus sprint at 20K from the finish.
The Quick-Step Floors rider gradually pulled away as he turned a bid for the climbers' polka-dot jersey into a first French stage win of this year's Tour.
"At the end of the day I won a stage in the Tour this year". I was pretty happy.
"Greg (Van Avermaet) and the classic guys will be there, maybe around 50 of us", he said.
The Lotto NL-Jumbo rider, who won the final stage to Paris previous year, had by his own admission suffered a disappointing start to the 2018 Tour before his show of power to beat Gaviria into second and Peter Sagan into third.
"I don't know how many kilometers I was alone - phew, it was a bit risky but I tried to up the pace and I really profited". "I'm after the green jersey and look, I'm wearing it".
BMC Racing's team leader crashed early in the stage, before the race had reached the cobblestones, and immediately grabbed his right collarbone. That doesn't mean the team has not had cause to celebrate during this Tour, however. And that's what Greg did today.
Porte's goal was to make it through the Roubaix cobbles ahead of Monday's rest day and then a succession of stages in the Alps, where he would try to stamp his overall claims.
While the Dutchman followed up Friday's success in Chartres with a Bastille Day victory in Amiens on stage eight, Cavendish could enjoy a respite from questions over his form as there was little he could have done differently this time.
By this time Wednesday and nearly certainly by Thursday, the yellow jersey should be in the hands of a rider in the mix to hold it all the way to Paris.
The first of the day, at Col de la Croix Fry, was won by Rudy Molard (Team Groupama-FDJ), with Gilbert and Van Avermaet in 5th and 6th respectively. I managed to keep control of my emotions.