Bayern Munich re-established a 17-point lead at the top of the Bundesliga, but were made to work hard for the points at struggling Hoffenheim.
A goal from Mario Gomez late in the first half was enough for Bayern to take the spoils and leave Hoffenheim five points adrift of a relegation play-off berth, and 11 away from safety with 10 games of the season remaining.
Bayern coach Jupp Heynckes was saved from making a difficult selection decision with Franck Ribery available again after suspension after Arjen Robben had to pull out injured.
Heurelho Gomes found himself wearing Hoffenheim's captain's armband in the absence of Andreas Beck and Sejad Salihovic and he was not tested as much as he probably expected to be.
Daniel Williams sent the first chance of the game into the side-netting at the other end of the field as Hoffenheim started confidently.
Bayern then began to find their usual rhythm, but they had to wait until the 38th minute before making the breakthrough.
Igor de Camargo gave away possession cheaply and Jerome Boateng's cross was headed back by Franck Ribery to Gomez, who beat Gomes with his first real attempt on goal of the afternoon.
Bayern then sat back and controlled the proceedings, showing why they are so close to a 22nd Bundesliga title.
Former Hoffenheim goalkeeper Tom Starke, who was making his Bundesliga debut for Bayern with Manuel Neuer rested, turned Stephan Schrock's effort wide as Hoffenheim refused to lie down and pushed for an equaliser.
Bayern still found chances on the break with Bastian Schweinsteiger hitting the woodwork with a free-kick in the 75th minute.
And as Hoffenheim tired late on, the Bavarians should have added a second, but Ribery, David Alaba, Thomas Muller and Mario Mandzukic all wasted chances.