Pep Guardiola insisted it was mission accomplished as Manchester City booked their place in the Champions League last 16 for a seventh successive season despite a lacklustre 1-1 draw against Shakhtar Donetsk on Tuesday.
Guardiola's side were well below their best at the Etihad Stadium, but Ilkay Gundogan's second half strike put them on course to wrap up first place in Group C with one game to spare.
Although Manor Solomon equalised for Shakhtar, Atalanta's win over Dinamo Zagreb ensured City can't be knocked off top spot.
"We have qualified. We played so good in second half. The group stage is always tricky but the target was to qualify and we have done it," Guardiola said.
"Now we have one competition already done - we play the last game qualified as first in the group - so we can focus on the Premier League until we arrive in the cups."
With the group clinched, Guardiola has the bonus of being able to rest players for the trip to Zagreb on December 11.
That is especially important as the Zagreb fixture comes between vital Premier League matches against Manchester United and Arsenal.
While City won't give up their Premier League title without a fight, Liverpool are in such a strong position that Europe could provide Guardiola's best hope of a major prize this term.
Guardiola won the Champions League twice as Barcelona boss but the last of those triumphs came in 2011. He hasn't gone past the quarter-finals with City.
Returning to the knockout stages was a first step toward ending that frustrating streak, but Guardiola will know injury-hit City have plenty of room for improvement.
"Shakhtar have quality players and are well organised and have an extraordinary goalkeeper so we knew it would be difficult," Guardiola added.
"We had a lot of opportunities but at the end, 1-1 was enough to qualify. We did it seven years in a row.
"But this competition in February will be completely different, tougher. We'll see in which conditions we arrive there. This competition is about the details."
City made a sloppy start and were almost caught out when a long punt into their half prompted Ederson to rush off his line.
When the City keeper completely missed his attempt to clear, Shakhtar's Mateus Tete charged into the penalty area, only for Fernandinho to block the shot with a superbly timed last-ditch slide.
City's limp opening was at least partially due to the absence of the club's record goalscorer Sergio Aguero, sidelined for several weeks after injuring a thigh in Saturday's win over Chelsea.
Gabriel Jesus started in place of Aguero, but the Brazilian, who has scored five goals in eight starts this season, was largely anonymous.
Ponderous for much of the half, City gradually found some rhythm and Nicolas Otamendi's header from Angelino's cross forced an agile save from Andriy Pyatov.
City have opened talks with Raheem Sterling about a new long-term contract that would reportedly make the 24-year-old one of the highest-paid players in the Premier League.
Sterling's place among the world's elite is without question, but this wasn't the England winger's best night.
City finally conjured a move befitting their ability, cutting through the Shakhtar defence to take the lead in the 56th minute.
Kevin De Bruyne was the catalyst with a swift surge and pass into Jesus in the Shakhtar area.
Jesus did well to control and poke the ball across to Gundogan. The German midfielder took a touch before slotting into the bottom corner from 10 yards.
Even that wasn't enough to paper over the cracks for sluggish City and Shakhtar equalised in the 69th minute.
Tete slipped his pass to the overlapping Dodo and his cut-back from the touchline drew a lethargic response from the City defence, allowing substitute Solomon to fire home from close-range only four minutes after coming on.
David Silva almost restored City's lead seconds later, but the substitute's shot was cleared off the line by Serhiy Kryvtsov.
Manchester, United Kingdom | AFP