The hosts took the lead courtesy Will Orban in the eighth minute. Jose Sa could only parry a Jean-Kevin Augustin effort into the path of the defender who fired into an open goal.
However, the 25-year-old got the visitors back in the game ten minutes later - a long throw from Miguel Layun was flicked on by Felipe, and the striker volleyed home past Peter Gulacsi at the near post.
Raphael Hasenhuttl’s side re-took the lead in the 38th minute after Marcel Sabitzer played Emil Forsberg through on goal, and the German dinked the ball over an onrushing Sa. Augustin made it three for the Bulls with four minutes left in the first half, after the winger latched onto a loose ball after a defensive error by Ivan Marcano and finished low into the bottom corner.
Three minutes later, Marcano made up for his mistake when he powered home after Hector Herrera headed a corner by Alex Telles back across the face of goal.
The Portuguese topflight club could not find the leveller as they slumped to their second defeat in three games and currently sit third in Group G.
Aboubakar who has now scored nine goals across all competitions played the entire duration while Algeria international Yacine Brahimi who was cautioned in the 46th minute was replaced by Jesus Corona with 14 minutes left to play.
Porto will be looking to put this result behind them when they welcome Pacos Ferreira to the Estadio do Dragao on October 21.