Following a cross by Enzo Perez, Ezequiel Garay closed the scoring in the 53rd minute with a close-ranged effort to the centre of the net.
Rodrigo almost scored shortly after but his right footed shot went too high.
The game became heated towards the end, when Danilo gained a second yellow card and was dismissed.
Porto's Ricardo Quaresma won a free kick in the 89th minute, on the left wing, after a foul by Lazar Markovic but Mangala's header was too high and went wide.