Manchester City progress in Champions League despite being held by Borussia Dortmund
Manchester City and Borussia Dortmund both progressed to the Champions League knockout stage after a largely uneventful 0-0 draw at Signal Iduna Park.
City went closest to breaking the deadlock when Riyad Mahrez's second-half penalty was saved and they remain unbeaten and are assured of top spot in Group E with one game to play.
The point was also enough for Dortmund, who were intent on keeping a clean sheet after having the better of the first half, and they too are guaranteed a place in the last 16.
Guardiola handed goalkeeper Stefan Ortega his club debut and England defender John Stones returned to action for the first time in seven matches after recovering from a hamstring injury.
Nathan Ake, Ilkay Gundogan, Julian Alvarez and Phil Foden also returned to the starting line-up, while Ederson, Kevin de Bruyne, Jack Grealish, Bernardo Silva, Manuel Akanji and Aymeric Laporte were all rested.
With City already assured of their place in the knockout phase and a point good enough to see Dortmund through, the opening exchanges lacked any real tempo.
City goalkeeper Ortega made his first save with his legs in the 16th minute when Karim Adeyemi stayed on side to run through on goal.
Adeyemi was instrumental again as Dortmund began to stretch City's back four, first picking out Giovanni Reyna on the left edge of the area after a flowing move, but the latter's curling effort was well held by Ortega.
Germany forward Adeyemi then produced an excellent low cross into the path of Youssoufa Moukoko, who let the ball run across him before side-footing wide.
Teenage striker Moukoko combined with Adeyemi again and forced Ortega into another save.
City had 66 per cent of first-half possession, but never troubled Dortmund goalkeeper Gregor Kobel, with Nathan Ake's towering header from Phil Foden's free-kick just before the break flying over the crossbar.
Erling Haaland had scant chance to make an impact against his former club and was replaced at the interval by Bernardo Silva, with Manuel Akanji on for Joao Cancelo.
Dortmund were first to threaten after the restart when Jude Bellingham failed to connect properly with his shot inside the area before City spurned the chance to take the lead after being gifted a 57th-minute penalty.
Mahrez went down under Emre Can's reckless challenge, but the City winger's subsequent spot kick was comfortably saved by Kobel, to the delight of the home crowd.
City continued to dominate the ball and began to pose a greater threat as Alvarez's first-time volley was well saved by Kobel.
But with the scoreline enough to send both teams through, there was little urgency in the closing stages with neither side creating further chances.