Defender Ibrahima Konate fired home Leipzig's opener before midfielder Marcel Sabitzer added the second goal with a 70th-minute penalty.
Manchester City loanee Angelino claimed Leipzig's third with a stunning free-kick which curled over the Freiburg wall just before the final whistle.
The home win put Leipzig top, a point ahead of Bayern and Dortmund who meet later at Signal Iduna Park.
Union Berlin climbed to fourth with a 5-0 home thrashing of strugglers Arminia Bielefeld. Former Germany striker Max Kruse helped set up Union's first three goals, then converted a late penalty in an outstanding display by the 32-year-old.
At the other end of the table, bottom side Mainz were held to a 2-2 draw at home to Schalke, who sit one place above them and have now gone 23 games without a league win dating back to January.