The semi-finals of the 1983–84 DFB-Pokal were some of the most memorable matches in the history of German football due to the unusual play patterns and results. Bayern Munich, Werder Bremen, and Borussia Mönchengladbach of the Bundesliga, along with second division side Schalke 04 had all advanced from the quarter-finals. The draw resulted in the following pairings:Borussia Mönchengladbach vs Werder Bremen
Schalke 04 vs Bayern Munich
These were the first two semi-final matches of the DFB-Pokal broadcast live on German television. The matches took place on 1 and 2 May 1984, both which went to extra time, along with a replay one week later on 9 May. It took a total of 26 goals in three matches to determine the finalists which would take part in the 1984 DFB-Pokal Final. In 2009, on the 25th anniversary of the matches, German newspaper Die Welt called the semi-finals "the two most spectacular cup ties ever".
In the first semi-final match, contested at the Bökelbergstadion in Mönchengladbach on 1 May 1984 was between fourth in the 1983–84 Bundesliga table, Borussia Mönchengladbach, and fifth in the table at the time, Werder Bremen. The match started out as an even game, but as the match progressed Borussia began to take control before the crowd of 34,500 spectators. Five minutes before half-time Mönchengladbach went ahead by a goal from Lothar Matthäus, but just two minutes later Norbert Meier equalised for Bremen. Another two minutes later Norbert Ringels restored Gladbach's lead to 2–1 at half-time. In the 76th minute, Borussia's lead was further extended to 3–1 via Uwe Rahn. Within six minutes, Werder turned the tie around and lead 4–3 going into stoppage time after goals from Benno Möhlmann in the 77th minute, Wolfgang Sidka in the 80th minute, and Uwe Reinders in the 82nd minute. After the Bremen's third goal, Gladbach coach Jupp Heynckes substituted striker Hans-Jörg Criens into the match, which would prove to be vital. In the 88th minute, Wilfried Hannes put the ball into the back of the net, but the referee Franz-Josef Hontheim did not award the goal after it was called offside by the linesman. Bremen could not hold on however, and in the fifth minute of stoppage time substitute Hans-Jörg Criens proved decisive by netting the equaliser for Borussia, and sending the match into extra time. In extra time, both teams had numerous opportunities to score. In the end, Criens once again proved himself decisive by scoring what would be the game-winning goal for Mönchengladbach in the 107th minute, sending them to the final.
Midway through the second half, there was unrest within Bremen's fan blocks, which was located behind the goal of Gladbach keeper Ulrich Sude. During the game, an object was thrown onto the pitch, which released smoke. Initially the object was thought to be a smoke bomb, but after Wolfgang Sidka and Uwe Rahn collapsed, and goalkeeper Sude contaminated by the smoke, the game had to be stopped for a few minutes. On the pitch there were scuffles between players and coaches of both teams, triggered by Michael Frontzeck bumping into Bremen coach Otto Rehhagel, who had rushed onto the field, worried about Sidka. Referee Hontheim had to calm the situation. Meanwhile, the smoke was determined to be tear gas, which even began to affect the spectators. The police marched into Bremen's block and arrested several people. After the final whistle, Bremen's sporting director Wilfried Lemke protested against the validity of the match, but he withdrew, as both teams were affected by the incident.
The match was considered the debut of "super-sub" Hans-Jörg Criens, who had played a part in several crucial and important goals. The match was broadcast live on Das Erste by ARD, commentated by Heribert Faßbender.
On 2 May 1984, the second semi-final took place at the Parkstadion in Gelsenkirchen between the "underdogs" and 1983–84 2. Bundesliga runner-up, Schalke 04, and Bayern Munich, second in the Bundesliga at the time. The match would be called "the most dramatic cup game played in the history of the Pokal since the 1935 competition". The sold-out Parkstadion had an official attendance of 70,600 spectators, although unofficially there were said to be up to 78,000. Bayern quickly led 2–0 after Karl-Heinz Rummenigge opened the scoring in the 3rd minute, and Reinhold Mathy with the second in the 12th. However, Schalke quickly struck back as Thomas Kruse scored a minute later, before Olaf Thon equalised in the 19th minute. One minute later Bayern regained the lead via a goal from Michael Rummenigge. In the second half, Thon once again equalised, with the goal coming in the 61st minute. Then, for the first time in the match, Schalke took the lead after a goal from Peter Stichler in the 72nd minute. Bayern equalised after Michael Rummenigge scored his second, sending the match into extra time after finishing 4–4. After 112 minutes, Schalke keeper Walter Junghans made a mistake, allowing Dieter Hoeneß to score and regain the lead for Bayern. Once again Schalke leveled the tie in the 115th minute via a goal from Bernard Dietz. Three minutes later Bayern once again gained the lead after Dieter Hoeneß scored his second goal in extra time. With the last attack in stoppage time in extra time, Olaf Thon equalised for Schalke, scoring his third of the match, thereby completing a hat-trick and forcing a replay in Munich after a 6–6 draw.
The replay took place a week later, on 9 May 1984 at the Olympiastadion München in front of 40,000 spectators. Karl-Heinz Rummenigge and Dieter Hoeneß put Bayern 2–0 at half-time, but once again Schalke came back after goals from Michael Jacob in the 50th minute and Michael Opitz in the 72nd. Seven minutes later, Karl-Heinz Rummenigge scored what turned out to be the winning goal, giving Bayern a 3–2 win and sending them to the final, where they would meet Gladbach.
Olaf Thon, who turned 18 the day before the first match, and thus still a teenager in the Schalke ranks, scored three goals in the first match, completing a hat-trick. Bayern coach Udo Lattek remarked after the game that he would pay 10 million Deutsche Mark for Thon. Barely six months later, Olaf Thon was called up to the Germany national football team, where he earned his first cap against Malta.
The first match was broadcast live on ZDF, commentated by Eberhard Figgemeier, which began at 20:15, after Bayern had already scored twice. The reporter praised the match, even 20 years later, saying: "An unbelievable game. You cannot imagine football more beautiful than this". The radio broadcast was commentated by Manfred Breuckmann.