The Belkin-Pro Cycling rider was set perfectly behind teammate Sep Vanmarcke of Belgium, the Stage 3 winner, as the group entered the final 50 metres. He shot to Vanmarcke's right and burst into the short lead he held through the finish of the 163-kilometre leg.
Bos finished in three hours 42 minutes 50 seconds. South Africa's Daryl Impey took second with Jure Kocjan of Slovenia third.
"The last 30 kilometres, we knew it was going to be a bunch sprint," Bos said. "We had everything under control but it's difficult to maintain position to the finish. With one lap to go all the teams were making their moves …with their sprinters."
His team lost position early in the last of the three laps around the finish area but a strong headwind enabled them to regain some space.
"I was in fourth position into the last corner, a perfect position … and it worked out."
The sprint to the finish came after the huge peloton had spent virtually the entire day patiently trailing minutes behind a small group of riders who broke away early. That group came into the final six kilometres still in the lead but it broke down totally in the first of the three, three-kilometre laps.
By midway through the second lap the peloton had swarmed past the group that had fought valiantly to hold on to their ever-shrinking lead.
Canadians Bruno Langlois and Nic Hamilton - the day's sprint winner -- were in the group of six, and then eight, who broke away early and at one point was more than four minutes ahead of the peloton. That didn't bother overall race leader Tom Dumoulin of the Netherlands who noted no one in the group was within six minutes of his overall time "so it was our plan to give them 10 minutes if they wanted."
As the 113 cyclists rode along the narrow roads and over three non-paved gravel sections — one as long as three kilometres — the gap narrowed as the peloton slowly began to reel in the front-runners.
The 163-kilometre course took the riders out of Edmonton along country roads and back into Sherwood Park.
Dumoulin finished in the huge pack and retained the yellow jersey as tour leader. He has held the lead since winning the opening day prologue in Calgary. He carries an eight-second lead over Ruben Zepuntke of Germany into Sunday's final stage. No one else is within 20 seconds. Ryan Anderson of Spruce Grove, Alta. is the top Canadian, 23 seconds off the pace.
Sunday's final stage is 124 kilometres around the heart of Edmonton, with riders doing 11 laps of a circuit that will feature plenty of sharp corners and constant elevation changes.
"That suits me really well," Dumoulin said of the final stage. "I normally do well in hills."