Manchester City's dominant display was trumped only by their wastefulness in front of goal in a 2-0 win over Dinamo Zagreb in Champions League Group C at the Etihad on Tuesday night.
City continued to put the pressure on the Croatians without finding a breakthrough and went into half-time without scoring a goal in a Champions League match for the first time since April of 2016.
"They defended so well, even the goal from Raheem the defender was there. I didn't expect them to play so deep, they only shot on target at set pieces, but they did what they did so well," said Guardiola, who praised Sterling for his improved finishing.
"He's a player who is always there, he has this talent he loves to score goals, you always have that feeling. We had chances but they defended really well and that's why it was difficult to score a goal.
"I think still he can improve his finishing. Today the pass for Phil was perfect. But still there is a gap to be even more clinical but it's important that all the time he's there and that's why he's been able to score the goals."
Late substitute Phil Foden added a deserved second just before the final whistle, blasting home from a Sterling assist on a vintage high-speed City counter-attack to double the lead.
Foden's instant impact, with his goal coming four minutes after he came on, left Guardiola feeling sorry that he was unable to find more minutes for the talented 19-year-old.
"I know, he deserves to play, I want to give him minutes, I'm unfair to him, I'm sorry but he has [Kevin] De Bruyne, Bernardo Silva, Rodri [ahead of him].
"I know the best way is for him to play minutes but he's so young. I don't know many players of his age [who] have played so many minutes, he's going to be incredible in the future but it is what it is."
The win makes it two-from-two tries for Group C leaders Man City, whose next Champions League match is another home game against Atalanta on Oct. 22.