- Michael Gregoritsch (75')
- Dani Olmo (13')
- Benjamin Henrichs (14')
- Dominik Szoboszlai (37', 90'+7' Pen)
- Christopher Nkunku (45'+1')
- Josko Gvardiol (58')
Holders RB Leipzig crushed hosts Freiburg 5-1 courtesy of a goal and three assists from Spaniard Dani Olmo on Tuesday to reach the German Cup final for the third straight year.
They will play either VfB Stuttgart or Eintracht Frankfurt, who meet on Wednesday, in the showpiece match.
In a repeat of last year's final, Leipzig, who had defender Josko Gvardiol sent off in the second half, found little resistance for most of the game from Freiburg and scored twice in 90 seconds early in the first period to take control.
Olmo's glancing header in the 13th minute put them ahead and before Freiburg had time to recover Leipzig struck again with the Spaniard feeding Benjamin Henrichs in the box to slot home.
Leipzig made it 3-0 in the 37th after another fine move and a finish from Dominik Szoboszlai, with Freiburg failing to stem the constant flow of attacks.
Nkunku made it look easy when he added another in first-half stoppage time following some more disastrous defending from the hosts and another Olmo assist.
The visitors went down to 10 men when Gvardiol was sent off after a straight red card just before the hour mark and Michael Gregoritsch's header cut the deficit in the 75th.
But it was too little too late from the hosts, whose fans interrupted the game midway through the second half when some threw objects onto the pitch and attempted to enter it.
Leipzig eased to victory as they added a fifth goal with a stoppage time penalty from Hungary international Szoboszlai.
- Sven Jablonski