Henri Lansbury, Lars Veldwijk and Stephen McLaughlin were on the scoresheet as the Reds recovered from going a goal down early on to record a second successive friendly victory following Saturday's 4-0 win at Ilkeston.
Porto took an early lead when Kleber drilled the ball past Karl Darlow from the edge of the area.
Simon Cox, who scored twice at Ilkeston, went close and Lansbury saw a free-kick brilliantly saved as the Reds sought a reply.
It came shortly afterwards and it was another Lansbury free-kick, but this time the midfielder's shot beat the goalkeeper and dipped into the net just beneath the crossbar.
Forest found themselves behind again after the interval when David Bruno did well to head the ball home from a 58th-minute corner.
A string of substitutions followed as Jamie Paterson, David Vaughan, Lansbury, Cox, Danny Collins and Danny Fox were replaced by Veldwijk, McLaughlin, Jorge Grant, Dan Harding, Radoslaw Majewski and Jamie Mackie.
The scores were soon level when Porto failed to clear their lines and summer signing Veldwijk fired the ball home.
Forest's comeback was complete with two minutes remaining when McLaughlin capitalised on a sloppy pass to advance goalwards and beat the goalkeeper with a confident finish.