Defender Ibrahima Konate fired home Leipzig's opener before midfielder Marcel Sabitzer added a second goal with a 70th-minute penalty.
Manchester City loanee Angelino claimed the third with a stunning free-kick which curled over the Freiburg wall just before the final whistle.
"We really deserved the win – we were very, very good in the first-half," Leipzig coach Julian Nagelsmann said.
Union Berlin, meanwhile, climbed to fourth with a 5-0 home thrashing of struggling Arminia Bielefeld.
Former Germany striker Max Kruse helped set up Union's first three goals, then converted a late penalty.
Bottom side Mainz was held to a 2-2 draw at home to Schalke, which sits one place above it and has now gone 23 games without a league win dating back to January.
After five games without a win, Hertha Berlin roared back with a 3-0 victory in the fog at Augsburg.
Forwards Matheus Cunha, Dodi Lukebakio and Krzysztof Piatek, who cost Hertha €24 million ($40 million) from AC Milan in January, got on the scoresheet.