Rashford had given United the lead in the seventh minute but didn't emerge for the second half, with Alejandro Garnacho entering the fray.
After cutting inside from the left flank and showcasing his skills, Rashford went for goal, with his effort beating Diogo Costa, who should have done better to keep hold off the ball.
Rasmus Hojlund proceeded to make it 2-0 to United but Porto subsequently staged a fightback.
Pepe pulled a goal back and then Samu Omorodion equalised for the Portuguese side.
Despite Rashford opening the scoring, Erik ten Hag elected to take him off
Despite the change from Erik ten Hag, United conceded a third goal, with Omorodion getting his second of the game to put Porto in front.
There was further misery for United, with captain Bruno Fernandes being sent off.
However, Harry Maguire equalised in dramatic circumstances to make it 3-3.
Ten Hag went into the game under much pressure after United lost 3-0 at home to Tottenham.
Rashford's goal was his fourth strike for United so far this season.
He was on target against Southampton in the Premier League and also hit a brace against Barnsley in the Carabao Cup.