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.
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.