Premiership leaders Manchester United dropped two potentially costly points in the race for the title with Chelsea.
Viduka has scored 16 goals this season
United took an early lead when Kieran Richardson slotted home after Wayne Rooney had collected Paul Scholes' pass and rounded Boro keeper Mark Schwarzer.
But in first-half stoppage time Boro deservedly equalised as Mark Viduka's diving header beat Edwin van der Sar.
United struggled to break Boro down after the break and were indebted to Van der Sar's save to thwart Viduka.
If United had had any nerves about their absorbing title duel with Chelsea they should have been dispelled thanks to Richardson's third-minute goal.
Scholes' raking pass took Jonathan Woodgate out of the game to release Rooney, who wasted no time in taking the ball round Schwarzer.
Rooney's final touch on the ball was a little too strong, but it made no matter as Richardson stepped in to sidefoot home.
The Old Trafford crowd could have been forgiven for expecting an avalanche of goals at this point, but Boro failed to play the role of willing lambs to the slaughter.
Belying their mid-table position, Boro were impressive following their uncertain start and dominated for long periods due to their midfield control.
Woodgate was superb for Boro, with his reading of the game at times quite imperious.
As Boro regrouped United were indebted to some brave defensive play from Wes Brown, who first tackled Yakubu and then came across to block Stewart Downing's attempted cross.
Viduka castigated Downing for not delivering his cross more quickly, but when the England international picked up on the ball on the left at the end of the first half he had clearly learned his lesson.
Downing whipped in a cross to the near post and Viduka stole in between Rio Ferdinand and Brown to send a diving header past Van der Sar.
With United due to face AC Milan in their Champions League semi-final on Tuesday, Ryan Giggs had started the game on the bench, but Viduka's goal saw the Welshman stripped and ready to go for the start of the second half.
But it was Boro who initially threatened in the second period when Viduka bamboozled Brown allowing the Australian a clear sight of goal.
This time Van der Sar got the better of Viduka, spreading himself to make a good save.
United brought on Ole Gunnar Solskjaer, but it was Boro who next threatened as Lee Cattermole went agonisingly close with a powerful shot.
Solskjaer did get the ball in the net, but all he earned was a booking for unsporting behaviour towards Schwarzer.
And late on United might have concede a penalty when Dong-Gook Lee went down following a John O'Shea tackle.
Man Utd manager Sir Alex Ferguson:
"It's a big task now.
"The injuries to Rio Ferdinand and Kieran Richardson killed us in the first half.
"But that was just the bad breaks you get in football, there is nothing you can do about it."
Middlesbrough manager Gareth Southgate:
"We wanted to have a go and our front boys were a real handful.
"They were some outstanding defensive performances as well.
"We showed real character after the worst possible start.
"We might even have pinched all three points and the longer it went on you could sense the crowd getting edgy."
Man Utd: Van der Sar, O'Shea, Ferdinand (Fletcher 46), Brown, Heinze, Ronaldo, Scholes, Carrick, Richardson (Giggs 46), Smith (Solskjaer 67), Rooney.
Subs Not Used: Kuszczak, Eagles.
Booked: Scholes, Solskjaer.
Goals: Richardson 3.
Middlesbrough: Schwarzer, Davies, Woodgate, Pogatetz, Taylor, Cattermole, Rochemback, Boateng, Downing, Yakubu (Lee 81), Viduka.
Subs Not Used: Jones, Huth, Morrison, Johnson.
Booked: Boateng, Rochemback, Yakubu, Cattermole, Pogatetz.
Goals: Viduka 45.
Ref: P Walton (Northamptonshire).