(CNN) -- Holders Manchester United must beat Portuguese champions Porto in their own backyard if they are to reach the Champions League semifinals after a compelling 2-2 first leg draw at Old Trafford on Tuesday.
Rodriguez fires Porto into a shock early lead at Old Trafford where they held United to a 2-2 first leg draw.
Carlos Tevez had looked to have secured United a crucial victory four minutes from time after being sent on as a substitute.
But the Premier League leaders had reckoned without Porto's magnificent fighting spirit that saw Mariano snatch a dramatic equaliser after 89 minutes.
Earlier Wayne Rooney capitalised on a shocking blunder to bring United level after Porto produced an early warning of their intentions.
United were trailing to Cristian Rodriguez's fourth-minute opener -- and lucky not to be further adrift -- when Bruno Alves turned a pass back towards goalkeeper Helton without looking.
Alves was unaware Rooney had ghosted behind him, and the United forward gleefully intercepted before calmly chipping home from 10 yards.
England marksman Rooney then set up Tevez with a flick of the foot for the Argentine to fire home from close range.
It turned out to be an ultimately frustrating night for United and their fans and manager Alex Ferguson hit out at his side's poor defending while admitting the result was "about right."
"First half they were the better side but second half we improved and got more possession," the Scot told ITV1. "But getting the (second) goal the way they did -- we should really have defended that. It was a bad goal to lose.
"It's been a hard two days for them (after playing Aston Villa on Sunday), but they were lacking in concentration."
Ferguson -- who revealed centre-half Jonny Evans had limped out with a groin injury -- added: "You get a 2-1 lead with four or five minutes left, you really should see it out.
"We've got a game on Saturday (at Sunderland), there's still a lot going for us, but it's a difficult game now in Porto, no question of that."
Porto had clearly decided that attack was the best form of defense, and Lisandro had already seen a viciously swerving shot turned over by Edwin van der Sar when Rodriguez capitalised on two woeful pieces of United play to open the scoring.
Cristiano Ronaldo, who had another match to forget, gave the ball away first.
Jonny Evans was given a second chance but his fluffed clearance went straight to Rodriguez who side-stepped the Northern Ireland defender before curling the ball low to Van der Sar's right.
Rooney's predatory instincts gave United renewed hope, but Porto continued to break at speed and Van der Sar made another very good save to again deny Lisandro.
Hulk had a convincing penalty claim against Carlos Tevez ignored before the substitute struck with four minutes left to apparently hand United an undeserved victory.
Porto's good work was not in vain as in the final minute Lucho's cross from the right found substitute Mariano in acres of space at the far post and he took his time before stabbing home.