Callum McManaman hit a stoppage-time volley against his former manager at West Bromwich to bring a dramatic end to the Wear-Tees derby.
Sunderland had taken the lead in the 11th minute when Joel Asoro poked a finish over the line before Jake Clarke-Salter was dismissed 13 minutes later for a lunge on Adama Traore.
Boro’s Spanish winger then saw red for raising his hands to Bryan Oviedo after a tussle, and that led to goals galore after the break.
Patrick Bamford scored twice for Boro, with Grant Leadbitter’s penalty also putting Pulis’s side on course for a win.
But Sunderland earned a point courtesy of McManaman’s late leveller after Jonny Williams had also struck.
Not only did Pulis think the last goal arrived after the six minutes of allotted stoppage-time, he also argued Oviedo should have been punished for his part in Traore’s red. He was also annoyed with his players’ defending.
“We are disappointed... they score in the 97th minute not the 96th,” said Pulis. “When the corner comes in you expect it to be defended better. We conceded two goals from a long throw and a corner. That is disappointing.
“There’s really good things about this team I like, but other things they have to really toughen up to. Seeing games out, seeing things through is one of them.
“It’s the mental stuff, the crowd with the last opportunity of the game is when you puff your chest out and dig in, concentrate. I am disappointed for the fans today.
“Adama’s sending-off was a disappointment, Oviedo walked round the back of him and poked him in the eye, Adama raised his hands and shouldn’t have shoved him in the chest. I am not sure if we can appeal, but if we can we will.”
Manager Chris Coleman is convinced Sunderland will turn the corner in their battle to beat the drop. The Black Cats are four points adrift of safety as they look to avoid the drop into League One.
Coleman, whose side are winless in six, losing four of those matches, said: “If we want to keep our home supporters with us, to keep them coming, then we have to keep doing what we did (Saturday) and against Bolton.”
Sunderland: Camp, Kone, O’Shea, Clarke-Salter, Cattermole, Matthews, McNair (Williams 42), Honeyman (McGeady 79), Oviedo, Asoro, Maja (McManaman 65). Unused substitutes: Steele, Jones, Browning, Robson.
Middlesbrough: Randolph, Shotton, Ayala, Gibson, Friend, Besic, Leadbitter (Clayton 76), Traore, Downing (Howson 77), Bamford, Assombalonga (Harrison 64). Unused substitutes: Konstantopoulos, Cranie, Fry, Baker.
Referee: T Robinson (West Sussex).