A Josh Reynolds field goal was enough to seal Canterbury a hard-fought 9-8 win over the Sydney Roosters at Allianz Stadium on Friday night.
Reynolds calmly slotted the match-winner from 20m out in the 70th minute a set after the Roosters had first turned down a penalty shot at goal and then halfback Mitchell Pearce missed a relatively easy field-goal attempt.
Reynolds' successful kick was the only point in a tough, absorbing second half in soggy conditions after the two sides were locked at 8-all at halftime.
The Bulldogs had the energetic five-eighth to thank in the 57th minute when he pushed Roosters winger Daniel Tupou into touch just before he got the ball over the tryline.
His efforts gave the 'Dogs their third win of the season and handed premiers Roosters their third loss.
After Jake Friend had a fifth-minute try disallowed after the video referee ruled Sonny Bill Williams illegally interfered with the Bulldogs defenders on their line, Canterbury drew first blood when Chase Stanley found space on the right-hand side and crossed for a 12th-minute try.
With persistent rain falling, Trent Hodkinson stretched the Dogs, lead to 8-0 with a penalty goal for offside after earlier landing a sideline conversion.
The Bulldogs dominated much of the first 30 minutes on the back of a solid effort from their forwards, especially James Graham on the sodden ground, with the absence of Jared Waerea-Hargreaves through suspension hurting the Roosters.
They enjoyed the better of field position and a goal-line try-saver from Sam Perrett on Mitch Aubusson in the 29th minute kept the Dogs' lead intact.
That was until the 33rd minute when Michael Jennings crossed from a Mitchell Pearce short ball to give the Roosters their first try in almost two hours of action.
Maloney converted and then added a 39th-minute penalty following a Bulldogs.
Greg Eastwood was a late inclusion for the Dogs for his first game of the year after Frank Pritchard was ruled out with an ankle problem.
Sonny Bill Williams looked rusty in his return from a two-game suspension for a shoulder charge.
Stanley left the field late in the game with what looked like a serious arm injury.
Bulldogs coach Des Hasler said he was happy to see his side build on their 40-12 win over Melbourne in Perth last start.
"It was a good tough game of football," he said.
"We will take a lot of confidence out of that. But I thought the Roosters were a bit off."
Hasler said he didn't know the extent of Stanley's injury.
Roosters coach Trent Robinson said he was happy with the effort from his side despite their second straight loss following last week's 8-0 loss to Manly.
"It was really tough for us tonight, I was proud of the guys, just like last week," Robinson said.
"The Dogs played some smart football."
Canterbury Bulldogs 9 (C Stanley try T Hodkinson 2 goals J Reynolds field goal) Sydney Roosters 8 (M Jennings try J Maloney 2 goals) at Allianz Stadium. Referee: Shayne Hayne, Henry Perenara
Will the Warriors be playing finals footy this year?