Vincent Kompany cautioned that Manchester City will not always win while playing "fantasy football" after Watford threatened late on in a 2-1 victory for the Premier League leader.

Leroy Sane put City ahead with his chest five minutes before half-time and Riyad Mahrez extended its advantage after the restart. Watford goalkeeper Ben Foster made five saves as Pep Guardiola's side struggled to put the game to bed, and Abdoulaye Doucoure's strike in the 85th minute set up a tense finale.

READ | Watford 1 Manchester City 2: Sane and Mahrez seal victory for champion

Aymeric Laporte replaced Gabriel Jesus as City was forced to hold on for the three points, with Kompany issuing a reminder that it will not always have things its own way.

"It was a good old Premier League game, as soon as they scored long balls started coming, they are extremely physical up front. Credit to us for staying strong," Kompany told BT Sport .

"I don't think we ever lose focus. We had chances to make it 3-0 and anything can happen. We managed the game pretty well. You can't win every game playing fantasy football."

Guardiola regretted City's inability to "kill the game" but was pleased to see Sane continue his return to form after a difficult start to the season in which he struggled to hold down a place in the team.

ALSO READ | Guardiola: 'City can ward off Barca, Real Madrid interest'

"Leroy Sane is scoring goals, he is back," said Guardiola.

"We had a good performance, we were aggressive and regained the balls, Ben Foster made some incredible saves.

"In the first half we had many chances, and after 2-0 the game was in control. We let them have the opportunity to come back.

"Once you concede with five or 10 minutes left you suffer, we didn't get the third goal which we needed. We had the chances to kill the game but we missed and that is what it is. We know that, we are not new in the Premier League."