Former Brazil international Souza was sent off after 33 minutes for raising an arm in a challenge.
The award was controversial but Fluminense took advantage and went ahead eight minutes into the second period when Anderson Martins headed past his own keeper from 25 metres out.
However, the home side got the point they deserved when Colombian Santiago Trellez headed home a powerful cross from Regis after he had performed some nice skill on the right.
Sao Paulo remained top of the Serie A with 46 points from 22 games, four ahead of Internacional who have a game in hand. Fluminense sit in 11th spot with 27 points.
(Reporting by Andrew Downie, editing by Ed Osmond)