Manchester City lost for the first time in 29 matches as Ukrainian side Shakhtar Donetsk won to join City in the last 16 of the Champions League.
A much-changed City, who had already secured top spot in Group F, fell behind when Brazilian Bernard curled a shot past Ederson from 15 yards.
Shakhtar doubled their lead as Ismaily capitalised on an Ederson error and tapped the ball into an empty net.
Sergio Aguero scored an injury-time penalty after Gabriel Jesus had been fouled by Bohdan Butko, but City could not extend their unbeaten record in 2017-18.
City had been hoping to become the first British club to win all six of their group matches in one Champions League season, but instead suffered their first defeat since Arsenal beat them 2-1 in the FA Cup semi-final on 23 April.
Who can City and Shakhtar face?
For the first time in Champions League history, there will be five English teams in the last 16 after Liverpool thrashed Spartak Moscow to win Group E.
It means City, Liverpool, Manchester United and Tottenham all won their groups, while Chelsea came second in Group C.
The draw for the last 16 takes place at 11:00 GMT on Monday at Uefa’s headquarters in Nyon, Switzerland and teams from the same country, or who played in the same group, cannot face each other.
Despite winning Group F, City could still face a two-legged match against Bundesliga leaders Bayern Munich, Italian champions Juventus or reigning European champions Real Madrid, who beat them in the Champions League semi-finals two seasons ago.
However, the Premier League leaders could also face less daunting ties in the shape of Swiss side Basel, Spanish team Sevilla or Portugal’s Porto, while Manchester United, Liverpool and Tottenham are three of the potential seven sides Shakhtar could be up against.
A chance to impress for City’s youngsters
City, who are eight points clear at the top of the Premier League, play away at second-placed Manchester United on Sunday, 10 December (16:30 GMT).
With that in mind and qualification already secured, manager Pep Guardiola, taking charge of his 100th Champions League tie, gave some young players the opportunity to impress.
Seventeen-year-old midfielder Phil Foden, who helped England win the Under-17 World Cup in October, was handed his first senior Manchester City start.
Foden was named as player of the tournament in India two months ago, scoring twice as England came from 2-0 down to beat Spain 5-2 in the final, and he managed to get forward regularly against Shakhtar despite occupying a position at left wing-back.
He volleyed a rare City first-half chance over the bar and also released Jesus, but the Brazilian was denied by some fine goalkeeping from goalkeeper Andriy Pyatov, who was quickly off his line to smother the chance.
It was a tougher match for 20-year-old centre-half Tosin Adarabioyo, who started a senior City game for only the fourth time in his career. Although not directly to blame for either of Shakhtar’s goals, Adarabioyo and the rest of the City defence struggled to deal with the forward play from Shakhtar’s forwards.
Spanish midfielder Brahim Diaz, 18, played the last 32 minutes for his third City appearance, and produced a fine run to set up Jesus, but the Brazilian’s shot hit the outside of the post.
Landmark for Guardiola – stats
- This was Pep Guardiola’s 100th Champions League game as manager, becoming the sixth to reach that landmark after Sir Alex Ferguson, Arsene Wenger, Carlo Ancelotti, Jose Mourinho and Mircea Lucescu. He has won 61, drawn 23 and lost 16 times, lifting the trophy on two occasions with Barcelona (2009, 2011).
- None of Manchester City’s 42 Champions League group games has ended goalless.
- Manchester City have only made it past the last 16 of the Champions League once, in 2015-16, when they reached the semi-finals before losing to Real Madrid.
- This was the second competitive encounter between Shakhtar Donetsk and Manchester City after the English team’s 2-0 win at the Etihad in September.
- Manchester City conceded more than once in the first half of a game for the first time since April (v Chelsea in the Premier League).
- Manchester City have kept just one clean sheet in their last 14 away games in the Champions League (4-0 v Feyenoord in September).
Man of the match – Bernard (Shakhtar Donetsk)
‘We came here to win’ – what they said
Manchester City manager Pep Guardiola told BT Sport: “Congratulations to them, it was a good game. Their first goal was magnificent, and the second goal we didn’t defend that well.
“I’m so pleased for Tosin (Adarabioyo), Phil (Foden) and Brahim (Diaz) and how well they played. We came here to win, we couldn’t but we were trying until the end to do so. I’m happy for the performance.
“Now we are going to rest, come back tomorrow and prepare for the game (against Manchester United).”
Manchester City’s Bernardo Silva told BT Sport: “The game didn’t go as we expected. In the first half they were better than us and it was a deserved win for them.
“In the second half we tried to come back, had our chances, but we are not happy. Even though we had already qualified, we wanted the three points.
“We have played against some amazing teams this season, Chelsea, Liverpool and Arsenal and we did well. In the Champions League you never know what will happen and we will see what happens.
“We will try our best to win all the competitions. Today it was a big opportunity for most of the players that are not playing as much as the others. I hope we can win at the weekend (against Manchester United), this is a really important match for us.”