Lotto Belisol's German rider Andre Greipel was second on the day after a 21-man bunch sprint to the finish in Breda, the Netherlands.
Omega Pharma - Quick-Step's Cavendish, the defending champion, suffered badly in the rain during Wednesday's prologue time trial, finishing 14th.
However, finishing in the leading pack means that the Briton has moved up to eighth, 14 seconds off Germany's Wagner, a Blanco Pro Cycling team-mate of Dutchman Bos.
Wagner also finished in the main bunch and has a two second lead over Blanco team-mate Lars Boom, who is their hope for the General Classification victory.
It was Bos's sixth win of the season, and it again came on a wet stage after rain marred Wednesday's time trial.
Jurrien Boster, Dries Hollanders, Steven Lammertink, Jens te Stroet and Bart van Haaren made the attack of the day, at one point building a 2:40 lead over the peloton, but they were all reeled in.
There was a brief late break by Boom and Juergen Roelandts but that was pulled back with a mile left as Bos powered through quickest in the rain.
There was another win for Katusha as Alexander Porsev clinched a sprint victory in stage two of the Tour of Luxembourg in Hautcharage.
The Russian, whose team-mate Alexander Kristoff won stage five in Switzerland on Wednesday, beat Gerald Ciolek (MTN-Qhubeka) and Juan Jose Lobato (Euskaltel-Euskadi) after the 193km ride from Luxembourg city.
“I am very happy today,” he said. “This is a special day for me. I waited a long time for this victory and finally I have got it.
“Yesterday, after the prologue, I had good a feeling, and today our sports director Torsten Schmidt said, that the team will work for me and that I have a chance to do something good.
“I want to thank all my team-mates for their help during the stage, especially Marco Haller, who helped me a lot in the final kilometre to get the best position for the sprint.”
There were no changes in the General Classification as Jimmy Engoulvent (Sojasun) kept the leadership after Wednesday’s time trial win.
At the Route du Sud in France, Yannick Martinez of Pomme Marseillaise took his first professional victory after sprinting to stage one in Mirande.
The Frenchman came in ahead of Anthony Roux (FDJ) and Adrien Petit (Cofidis).
The stage was marred by an accident involving two motorbikes following the race, which saw a policeman seriously injured.
Svein Tuft took his second time trial win of the season with victory in the opening stage of Tour de Slovenie.
The eight-times Canadian time trial champion covered the 8.8 kilometre course in Ljubljana in nine minutes and 55 seconds, six seconds quicker than ORICA-GreenEDGE team-mate Brett Lancaster, of Australia. Russia’s Artem Ovechkin (RusVelo) was third.
“This was a nice course for going flat out,” Tuft said. “There wasn’t anything tricky about it. The roads were in good conditions and it was nice not to race in the rain.”
The tour gets mountainous from stage two, with the Australian team - packed with sprinters - acknowledging they have no chance of overall victory.