The victory kept Boro within touching distance of the Championship’s automatic promotion places.
But the Hornets will feel aggrieved at the manner of their defeat, having more than matched their hosts and with the former Celtic striker well offside for the winning goal.
An evening game lacking quality but showing plenty of endeavour and passion saw chances at a premium, as Middlesbrough put their horrible October behind them and remain unbeaten at home.
Watford came into the game on the back of successive league wins for the first time this season, but could have conceded three in the opening six minutes.
It took only 15 seconds for the first clear chance of the game, and the hosts should have capitalised.
An aimless Prince Buaben pass went straight to Barry Robson who dragged his shot narrowly wide of Scott Loach’s left-hand upright.
McDonald’s first-time volley was then hit into the ground for a comfortable Loach save before top scorer Marvin Emnes mishit a shot wide from close range in the seventh minute.
The Hornets had lost three away league games on the bounce and it took until the 21st minute for them to create anything of note.
A long ball upfield was cleverly flicked into the path of Chris Iwelumo who, lacking options, went for goal from 20 yards – Jason Steele palming the shot wide at his near post.
From the ensuing corner, Adrian Mariappa’s header looked to be goalbound, but was unwittingly blocked two yards out by team-mate Marvin Sordell.
A faulty fire alarm saw an evacuation begin at the Riverside, only for those who had left to be called back having missed none of an increasingly scrappy affair.
But a goal duly arrived five minutes before half-time and came in controversial circumstances.
Merouane Zemmama battled brilliantly to win the ball from Lee Hodson and drove forward to pick out Robson, the former Celtic man showing quick feet to release McDonald, who was clearly offside.
Unperturbed, the Australian’s first shot was well stopped by Loach but made no mistake to slot home from the follow-up.
The Hornets have been behind at the break five times this season, and have only recovered to gain a point once.
The visitors’ aerial threat was prevalent and they again came close from a corner after 56 minutes, this time a combination of Steele and Nicky Bailey clearing Carl Dickinson’s header off the line.
But it was Boro who almost sealed the points on 69 minutes when Rhys Williams’ cross was blazed wastefully over by substitute Faris Haroun and six minutes later Emnes’ weak shot was straight at Loach as the game petered out.