Erling Haaland took his tally to 17 goals in 11 Premier League games as Manchester City held off a second-half fightback to beat Brighton.
Norway striker Haaland initially let defender Adam Webster beat him to shoot, and he kicked the penalty after Bernardo Silva was ruled by the video assistant to have fouled Lewis Dunk.
Brighton improved after the break and reduced the deficit when Leandro Trossard headed home from close range.
The away side, who have not won in five games since Roberto de Zerbi replaced Graham Potter as manager, threatened to equalize through Alexis Mac Allister, Tariq Lamptey and Trossard.
But seconds after Ederson denied Trossard, City skipper Kevin de Bruyne sealed victory by curling a superb effort into the top corner from 25 yards.
Champions City move to within a point of leaders Arsenal who travel to Southampton on Sunday.
More to follow.
How to play
Rate all 10 players during or after the entire match. The evaluator will close 30 minutes after the final whistle.
Rating range key = Give it to me = Pure perfection
Brighton and Hove Albion
- 3Ruben Dias
- 7cancel it
- 17De Bruyne
- 20Bernard Silva
- 26MahrezBooked in 54 minutesreplaced bythe footin 62′minutes
- 9Haalandreplaced byAlvarezin 80′minutes
- 10Grealishreplaced byPalmerin 77′minutes
- 8in Gundogan
- 47the foot
- 34Veltmanreplaced byin the gutterin 66′minutesBooked in 74 minutes
- 10McAllisterreplaced byGilmourin 87′minutes
- 25CaicedoBooked in 26 minutes
- 13bigBooked in 61 minutesreplaced bySarmientoin 87′minutes
- 18Welbeckreplaced byUndavin 79′minutes
- 14Lallanareplaced byLampteyin 45′minutes
- 29from Hecke
- 30in the gutter
- Craig Pawson
The match is over, Manchester City 3, Brighton and Hove Albion 1.
Second half ends, Manchester City 3, Brighton and Hove Albion 1.
Leandro Trossard (Brighton and Hove Albion) wins a free kick in the defensive half.
Foul by Manuel Akanji (Manchester City).
Missing Leandro Trossard (Brighton and Hove Albion).
Bernardo Silva (Manchester City) wins a free kick.
Absence of Pervis Estupiñán (Brighton and Hove Albion).
Cole Palmer (Manchester City) wins a free kick on the right wing.
Change, Brighton and Hove Albion. Jeremy Sarmiento replaces Pascal Groß.
Change, Brighton and Hove Albion. Billy Gilmour replaces Alexis MacAllister.
Attempt blocked. Pervis Estupiñán (Brighton and Hove Albion) right footed shot from outside the box misses to the right. Contributed by Deniz Undav.
Attempt blocked. Solly March (Brighton and Hove Albion) left footed shot from the right side of the box is saved in the center of the box. Assistant: Pascal Groß.
Bernardo Silva (Manchester City) is absent.
Alexis Mac Allister (Brighton and Hove Albion) wins a free kick in the attacking half.
Kevin De Bruyne (Manchester City) is fouled.
Tariq Lamptey (Brighton and Hove Albion) wins a free kick in the defence.
Corner, Manchester City. Tariq Lamptey receives the ball.
Corner, Brighton and Hove Albion. João Cancelo has scored.
Change, Manchester City. Julián Álvarez instead of Erling Haaland.
Offside, Brighton and Hove Albion. Pervis Estupiñán tries a deep pass, but Deniz Undav is caught offside.
- Your Premier League club coverage is bigger and better than ever – it’s here everything you need to know to make sure you don’t miss a moment