Edin Dzeko's effort was turned away by Dortmund goalkeeper Roman Weidenfeller. On the other side, Marco Reus shaved the post of Joe Hart's goal. The City goalkeeper also stopped a shot by Ivan Perisic late in the first half.
City returned from the break with more ambition, and Dzeko's header from a cross by Samir Nasri was saved by Weidenfeller.
Dortmund nearly went ahead in the 49th, but Mats Hummels failed to connect with a cross from Marcel Schmelzer.
Hart then tipped over a volley from Perisic and another attempt by Kevin Grosskreutz, before Schieber found the target.
Schieber attempted a chip in the 59th but Hart caught the ball.
Mario Balotelli came on in the 65th for Dzeko, to loud jeers from Dortmund fans. The striker scored both goals for Italy in the semifinal win over Germany at the European Championships earlier this year.
Balotelli's main contribution was to earn a yellow card in injury time for protesting a decision by the referee.