Manchester City's sloppiest display of the Champions League brought plenty of reasons to be cheerful for Pep Guardiola.
A 1-0 win over Feyenoord on Tuesday, sealed by Raheem Sterling's 88th-minute goal, clinched top spot in Group F with a game to spare, meaning City can rest key players for its trip to Shakhtar Donetsk in the final matchday.
That comes four days before what will be the most high-profile match of the English Premier League, a derby against Manchester United.
City's fifth straight victory in the group kept the team on course to become the first from England to complete the group stage with maximum points. That feat has been achieved by only six sides in the competition's 25-year history.
Then there was the sight of two teenagers, Phil Foden (17) and Brahim Diaz (18), making their Champions League debuts as late substitutes — much to the delight of City fans who have been waiting for the club's much-touted academy to bring through players for the first team.
This was not the same City that was knocking over all-comers in the Premier League, with 11 wins and 40 goals from 12 games, or that beat Napoli home and away to move to the brink of qualification heading into the game against Feyenoord.
But it was maybe to be expected. Guardiola made seven changes to his team from its most recent Premier League game and the Dutch visitors sat deep for most of the match, defending stoutly.
"It was so difficult, so complicated to find the space," Guardiola said. "Sometimes it happens."
Feyenoord couldn't hold out, though, as Ilkay Gundogan threaded a superb through-ball to Sterling, who lifted his finish over goalkeeper Brad Jones for the 11th goal of what is set to be the most prolific season of the winger's career.
With Napoli beating second-place Shakhtar 3-0, City would have already been assured of first place anyway. However, Sterling's goal secured a 17th successive win for unbeaten City in all competitions this season.
Guardiola cut a frustrated figure in his technical area. Toward the end of the first half, after another attack broke down, the coach returned to the dugout and slumped in his seat, shaking his head.
The sloppiness even extended to City goalkeeper Ederson Moraes, who was twice almost embarrassed after racing out of his area to intercept through-balls. For the first, in the 26th minute, Ederson only just got a toe to the ball ahead of Jean-Paul Boetius, otherwise it could have been a red card.
Foden, a highly rated midfielder who recently won the Under-17 World Cup with England, came on as a 75th-minute substitute for his competitive debut for City. He replaced Yaya Toure, a player twice Foden's age, in a move that sparked one of the loudest cheers of the night inside Etihad Stadium.
Diaz, another midfielder, was a stoppage-time replacement for Sterling.
"For the academy, all the guys who've been working for a long time, the scouting, to search for huge talents, the way they work with them," Guardiola said, "I put them on the field, but the guys who have worked with them deserve credit."
It's the second time City has finished top of its Champions League group — the other occasion came under Manuel Pellegrini in the 2015-16 season — but it might make no difference.
There's still a chance that City could face one of three European giants in the last 16, with Real Madrid, Bayern Munich and Juventus on course to be runners-up.
"We are now going to finish good in Shakhtar and win the game," Guardiola said. "The draw, we'll see. Last 16, it doesn't matter which one. Always will be complicated."
Feyenoord, on just one point, is assured of finishing in last place, yet avoided the kind of thrashing that has been inflicted on many visitors to the Etihad this season.
"There are clubs who will leave this stadium with the tail between their legs more than we have today," coach Giovanni Van Bronckhorst said.