Besökarna, som var fjärde har dragit 10 av sina 17 oslagbara spel, ledde genom Nadiem Amiri men Timo Werner knackade i en equalizer.
Hoffenheim hade då bästa målskytt Sandro Wagner skickat iväg för att sparka Stefan Ilsanker.
Och på andra plats i Leipzig utnyttjades Marcel Sabitzers avböjda strejk som bevisade vinnaren.
Säsongens överraskning paket förblir tre poäng bakom Bayern München, som vann 2-1 på Werder Bremen.
Matchändar, RB Leipzig 2, 1899 Hoffenheim 1.
Andra halvlek, RB Leipzig 2, 1899 Hoffenheim 1.
Davie Selke (RB Leipzig) vinner en frispark i defensiven.
Foul av Sebastian Rudy (1899 Hoffenheim).
Ersättning, RB Leipzig. Rani Khedira ersätter Timo Werner.
Davie Selke (RB Leipzig) visas det gula kortet.
Offside, RB Leipzig. Marvin Compper försöker en genom boll, men Davie Selke fångas offside.
Försök missade. Diego Demme (RB Leipzig) vänster fotade skott från en svår vinkel till vänster är bara lite för hög. Hjälpt av Davie Selke efter en viss situation.
Ersättning, RB Leipzig. Dominik Kaiser ersätter Naby Keita.
Benjamin Hübner (1899 Hoffenheim) visas det gula kortet för en dålig foul.
Timo Werner (RB Leipzig) vinner en frispark på högerkanten.
Foul av Benjamin Hübner (1899 Hoffenheim).
Ádám Szalai (1899 Hoffenheim) visas det gula kortet.
Bernardo (RB Leipzig) vinner en frispark i den defensiva halvan.
Foul av Mark Uth (1899 Hoffenheim).
Foul av Bernardo (RB Leipzig).
Steven Zuber (1899 Hoffenheim) vinner en frispark på vänsterflygeln.
Offside, RB Leipzig. Marvin Compper försöker en genom boll, men Davie Selke fångas offside.
Försök missade. Timo Werner (RB Leipzig) höger fotade skott från mitten av lådan är nära, men missar till vänster. Hjälpt av Marcel Sabitzer.
Offside, RB Leipzig. Marcel Halstenberg försöker en genom boll, men Timo Werner fångas offside.
Försök missade. Kerem Demirbay (1899 Hoffenheim) vänster fotade skott utanför lådan är nära, men missar till höger från en direkt fri spark.
Marvin Compper (RB Leipzig) visas det gula kortet för en dålig foul.
Foul av Marvin Compper (RB Leipzig).
Mark Uth (1899 Hoffenheim) vinner en frispark i anfallshalvan.
Offside, RB Leipzig. Diego Demme försöker en genom boll, men Timo Werner fångas offside.
Offside, RB Leipzig. Marcel Halstenberg försöker en genom boll, men Davie Selke fångas offside.
Foul av Timo Werner (RB Leipzig).
Sebastian Rudy (1899 Hoffenheim) vinner en frispark i defensiven.
Mål!  RB Leipzig 2, 1899 Hoffenheim 1. Marcel Sabitzer (RB Leipzig) höger fotade skott från utsidan av lådan till nedre vänstra hörnet. Hjälpt av Naby Keita.
Bernardo (RB Leipzig) vinner en frispark i den defensiva halvan.
Foul av Ádám Szalai (1899 Hoffenheim).
Ersättning 1899 Hoffenheim. Ádám Szalai ersätter Nadiem Amiri.
Foul av Marcel Halstenberg (RB Leipzig).
Kerem Demirbay (1899 Hoffenheim) vinner en frispark på högerkanten.
Foul av Naby Keita (RB Leipzig).
Mark Uth (1899 Hoffenheim) vinner en frispark i defensiven.
Marcel Sabitzer (RB Leipzig) vinner en frispark på vänsterflygeln.
Foul av Niklas Süle (1899 Hoffenheim).
Ersättning, RB Leipzig. Davie Selke ersätter Yussuf Poulsen.
Willi Orban (RB Leipzig) vinner en frispark i den defensiva halvan.
Den sista oslagbara starten i Europas fem bästa ligor slutade som Hoffenheim förlorade till titel-chasing RB Leipzig.