Giovani Lo Celso hit a low, curling effort into the bottom corner to level at 2-2 in the 69th before substitute Grealish scored what seemed to be the winner.
Even after Kulusevski’s equaliser there was further drama when referee Simon Hooper stopped play to award City a free kick despite Grealish appearing to be running through on goal.
The draw halts Spurs’ three-game losing run and moves Ange Postecoglou’s team above Newcastle to fifth.
EPL results: Liverpool score two late goals in 4-3 win against Fulham
Liverpool scored two goals in a minute late on to beat Fulham 4-3.
Trailing 3-2 at Anfield, goals from Wataru Endo and Trent Alexander-Arnold in the 87th and 88th minutes secured a comeback win.
Liverpool had twice led in the match, but looked set to lose at home for the first time since February when Bobby De Cordova-Reid put Fulham ahead in the 80th.
That was until Endo sparked the comeback and Alexander-Arnold hit the winner soon after to extend the Merseyside team’s 100 percent winning home record this season and moved it to within two points of leader Arsenal.
Liverpool had taken the lead in the 20th through an own goal from Fulham goalkeeper Bernd Leno after Alexander-Arnold’s long-range 25-yard free kick.
Fulham evened the score four minutes later when former Liverpool player Harry Wilson squeezed a near-post shot under keeper Caoimhin Kelleher from Antonee Robinson’s cross.
The home team retook the lead in brilliant fashion as Alexis Mac Allister drove a shot into the top corner in the 38th.
Fulham evened the score again in the third minute of first-half stoppage time through Kenny Tete who headed in after Raul Jimenez flicked the ball on from a corner.
Leno denied Salah just before the break and Darwin Nunez smashed a shot against the crossbar in the second half.
Fulham went ahead when substitute De Cordova-Reid out-jumped Kostas Tsimikas at the far post.
Endo had a header saved and Salah fired the rebound over before Liverpool went on to complete its comeback.
EPL results: Chelsea holds on to beat Brighton
Enzo Fernandez scored twice as 10-man Chelsea held on to beat Brighton 3-2.
The midfielder struck in each half as the Londoners bounced back from last week’s 4-1 loss against Newcastle.
But Mauricio Pochettino’s team, which had Conor Gallagher sent off just before halftime, had to resist a fightback from Brighton that included a late penalty being overturned by VAR.
Chelsea led 2-0 after headers from Fernandez and Levi Colwill in the 17th and 21st minutes, but Facundo Buonanotte pulled a goal back for Brighton in the 43rd and Gallagher was shown a second yellow card just before the break.
Fernandez scored a penalty in the 65th to regain the home team’s two-goal advantage, but Joao Pedro came off the bench to score from a header in the second minute of stoppage time.
In a dramatic end to the match, Chelsea survived a penalty scare for a possible handball against Colwill with virtually the game’s final action.
Fernandez scored his first Premier League goal after heading in from close range from Benoit Badiashile’s hooked cross.
Colwill scored with a header four minutes later after connecting with Nicolas Jackson’s cross.
Buonanotte halved Chelsea’s lead when lashing a shot inside the far post with his left foot and soon after, Gallagher shown a second yellow card for sliding in late on Billy Gilmour.
Mudryk won a penalty after the break when he outpaced James Milner before being shouldered to the ground. Fernandez converted the ensuing spot kick.
Ten minutes of stoppage time had been announced by the time Pedro rose to glance a header across goal and in at the far post to give Brighton hope.
Then referee Craig Pawson was called to the touchline to review a handball against Colwill. The evidence seemed to show the ball strike the defender’s face to the relief of fans inside Stamford Bridge.
EPL results: West Ham and Crystal Palace draw 1-1
A second-half equaliser from Odsonne Édouard has given Crystal Palace a share of the points in a scrappy London derby against West Ham in the Premier League.
Mohammed Kudus opened the scoring against the run of play to the delight of the home supporters at the London Stadium with the team’s first shot on target in the 13th minute.
Édouard missed a chance to nod in an equaliser early in the second half but made up for his earlier profligacy when an ill-judged back pass by Konstantinos Mavropanos allowed the Palace forward to intercept and score in the 53rd. The 1-1 draw keeps the Hammers ninth in the table. Palace remains 12th with 16 points.
EPL results: Ollie Watkins earns Aston Villa a point at Bournemouth
Ollie Watkins has produced a dramatic 90th-minute equaliser as Aston Villa twice came from behind to rescue a 2-2 draw at Bournemouth.
High-flying Villa looked to be heading for a shock defeat on the south coast until Watkins pounced on substitute Moussa Diaby’s cross to score his 13th goal of the season with a well-timed backward header. Leon Bailey also scored for Villa. Antoine Semenyo and Dominic Solanke got Bournemouth’s goals. Villa stayed fourth. Bournemouth is 16th.
EPL ladder
(Team, points)
1. Arsenal 33
2. Liverpool 31
3. Man City 30
4. Aston Villa 29
5. Tottenham 27
6. Newcastle 26
7. Man United 24
8. Brighton 22
9. West Ham 21
10. Chelsea 19
11. Brentford 19
12. Crystal Palace 16
13. Wolves 15
14. Fulham 15
15. Nottingham Forest 13
16. Bournemouth 13
17. Luton Town 9
18. Everton 7
19. Burnley 7
20. Sheffield United 5
– with AP