The Mexican was given his marching orders after receiving two yellow cards in the space of a minute in the UEFA Champions League Group G encounter - a record for the competition.
His first was given for a poor tackle on former Porto striker Hulk and was immediately followed by a foolish second for encroachment on the resulting free-kick.
And Zenit eventually made the extra man count four minutes from time, with Aleksandr Kerzhakov rising highest to head home from a superb Hulk cross.
"I think it was a correct decision by the referee," said Spalletti. "I would be surprised if he didn’t see the second yellow."
Spalletti was also full of praise for Hulk, who returned to the Estadio do Dragao in fine form.
"Hulk was the player that gave them more problems," he added. "He was everywhere, dribbling from the right, giving Kherzakov the goal, he was crucial for our win."
The win lifts Zenit to second in the group, while Porto drop to third - one point behind the Russian side.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.