Hofland, of the Lotto-Jumbo team, timed his sprint to perfection in a bunch finish, after the final rider of an earlier breakaway had been overhauled with a kilometre to go.
Britain’s Mark McNally was voted the day’s most aggressive rider after being part of an 18-man group which broke away after just five kilometres.
The break was whittled down to eight riders going into the final 50 kilometres and only McNally and Bert De Backer remained in front as the race entered the last of two full laps of a circuit around York.
McNally finally cracked with 5.5 kilometres to go, but De Backer’s lone bid for victory was ended with 1.5km left, after he had been out in front for 167 kms.
Greg Van Avermaet attacked with one kilometre remaining, but he was swept up by the bunch with 200 metres left and Hofland emerged to win ahead of Metteo Pelucchi in second place, with Ramon Sinkeldam third over the line.
It was Lotto-Jumbo’s first win of the season and Hofland said: “I waited until 200 metres to go and it is good the zero for the team is gone now.”
Organisers estimated a crowd of around 450,000 for the stage. Hofland said: “It is not normal, even in villages the people were three or four deep. It is really cool to ride here.”
Team Sky’s Lars Petter Nordhaug retained his overall lead, finishing in the peloton. He said: “It was quite hectic in the final, but the team did a good job and I am happy.”
Rotherham’s Russell Downing was seventh on the stage. He said: “It was good. We knew it was going to be a bunch sprint, but I lost a few places and got pinned on the barriers.
“I had to come from far back and didn’t quite make the top-three, but it wasn’t bad.”
The race concludes on Sunday with a stage from Wakefield to Leeds.