Brandt Snedeker has won the RBC Canadian Open by three shots after a nerveless final round of 70.

Dustin Johnson had emerged as the most likely threat to overnight leader Snedeker, but the erratic Ryder Cup player racked up a triple-bogey seven at the penultimate hole to clear the way for his fellow American.

And despite finding sand off the final tee, the Nashville resident duly completed a regulation par to finish two under for the day and 16 under for the tournament, following his superb 63 on Saturday.

Birdies at the second and seventh were partially offset by a bogey at the sixth, but it was a solid front nine for Snedeker. And he repeated the pattern after the turn to compete victory, earning a payday of just over one million US dollars.

Johnson got a shot back at the last, his fifth birdie of the round, to share second place on 13 under and was left wondering what might have been.

Alongside him were Matt Kuchar - a third member of the US Ryder Cup team beaten at Medinah, who was two shots off Snedeker's overnight lead - plus William McGirt, whose 68 was the best round among the leading contenders, and Kuchar's playing partner Jason Bohn.

Three more United States players - John Merrick, Roberto Castro and Mark Wilson - were at 12 under, with the leading non-American, Australia's Aaron Baddeley, a further shot back alongside Jim Furyk and Patrick Reed.

Sweden's David Lingmerth, playing with Snedeker after a 65 yesterday left him one off the overnight lead, shot 75 to slip back to 10 under alongside Kyle Stanley, Rory Sabbatini and England's Greg Owen.

Snedeker will use some of his purse from his Canadian Open win to buy Hunter Mahan's new baby daughter Zoe a gift after his rival opted to return home for her birth on Saturday while holding a two-shot lead.

"I can't thank Kandi (Mahan) enough for going into labour early,” said Snedeker.

“Otherwise, I don't know if I'd be sitting here if she hadn't.

"But that is a way more important thing than a golf tournament. I missed a golf tournament when my first was born and it was the best decision I ever made."

With his victory, the 32-year-old American joins Tiger Woods, Phil Mickelson and Matt Kuchar as the only players on the PGA Tour with multiple wins this season.

Since 2011, only Woods, with seven titles, has had more wins than Snedeker with five.