The Gunners played the entire second-half with ten men after Leandro Trossard had been sent off just before the break.
City went ahead through Erling Haaland before a screamer from Riccardo Calafiori and a header from Gabriel Magalhaes had the visitors 2-1 ahead at halftime.
The visitors sat in deep for the entire second-half and appeared set to pull off a stunning win against the champions only for substitute Stones to scramble home his equaliser in the 98th minute.
Stones said afterwards: "You are frustrated that you don't get to start in these big games and before the game I tried to channel it and have a positive attitude if needed to come on.
"Over the years we have learned as a team to stick together, no matter who is playing and to always be ready - I'm sure you have heard the manager say that plenty of times.
"I came on and tried to be inside the box for more crosses. One dropped to me and thankfully I put it in the back of the net. I'm really pleased to have scored the goal like that."
On manager Pep Guardiola's instructions before entering the pitch, Stones added: "He wanted me to play closer to Erling (Haaland), get higher up the pitch so when we got crosses in we could start to win more aerial duels."