Manchester City players react on the final whistle in the English Premier League football match between Manchester City and Everton at the Etihad Stadium in Manchester, north west England, on December 31, 2022. - The game finished 1-1. Photo: AFP
Erling Haaland looked to have put the defending champions on course for victory in a scrappy Premier League contest at the Etihad Stadium with his 21st league goal.
The prolific Norwegian struck in clinical fashion after 24 minutes but Gray responded with a sublime curling effort from the edge of the area just after the hour.
John Stones had earlier hit the post against his former club but Everton showed great resilience to hang on and limit City's formidable Haaland-led attack.
It ended a run of three straight league losses for Everton and eased some of the pressure on manager Frank Lampard.
Haaland, as ever, had looked like he would make the difference early on. He threatened for the first time when he latched on to a fine throughball from Kevin De Bruyne and rounded Jordan Pickford but fired into the side-netting.
City claimed the lead when Riyad Mahrez slalomed his way through the area and pulled back for Haaland, who finished clinically on the turn.
Everton had welcomed Dominic Calvert-Lewin back into their side after a number of injuries but struggled to provide him much service.
Idrissa Gueye did curl in one dangerous cross but Calvert-Lewin was unable to make clean contact with his header.
The second half got off to a slow start, not helped by a lengthy holdup for one of the assistant referees to have his communication equipment repaired.
When play restarted it was Everton which surprisingly clicked into gear first, bringing the visitors an unlikely equalizer just after the hour.
City backed off as Gray charged into the area, and although he slipped as he tried to cut back inside Manuel Akanji, he quickly regained his composure to curl a shot into the top corner.
Everton's attempts to disrupt the flow of the game then began to frustrate City. De Bruyne shrugged off some crude challenges but Jack Grealish and Haaland got some rough treatment.
City piled on the pressure in the latter stages but Pickford saved well from Mahrez in a goalmouth scramble and numerous other attempts on goal were blocked.
With 11 minutes of stoppage time played, it was a nervy finish for the visitors but they held on with some dogged defending.
(For more sports news and updates, follow Ahram Online Sports on Twitter at @AO_Sports and on Facebook at AhramOnlineSports.)