# 2020 European Men's Handball Championship

The 2020 EHF European Men's Handball Championship was the 14th edition of the tournament and the first to feature 24 national teams. It was co-hosted for the first time in three countries – Austria, Norway and Sweden – from 9 to 26 January 2020.
Spain won their second consecutive title by defeating Croatia 22–20 in the final.

## Bidding process

The interested nations were as follows:
* Austria
* Norway
* Sweden
In December 2013, these were announced as the bids:
* Austria
* Norway
* Norway and Sweden
* Sweden
After further negotiations, between the three bids and the European Handball Federation, it was decided to merge the three individual bids into one big bid. Due to the decision to merge the bids, the EHF decided to bring forward the expansion of the tournament to 24 teams, which was originally going to start in 2022. On 20 September 2014, at the EHF Congress in Dublin, Austria, Norway and Sweden were all given the hosting rights.

## Venues

| Stockholm, Sweden | Malmö, Sweden | Gothenburg, Sweden |
| Tele2 Arena Capacity: 19,000 | Malmö Arena Capacity: 13,000 | Scandinavium Capacity: 12,000 |
| StockholmMalmöGothenburgViennaGrazTrondheim |||
| Vienna, Austria | Graz, Austria | Trondheim, Norway |
| Wiener Stadthalle Capacity: 12,000 | Graz Messe Arena Capacity: 6,000 | Trondheim Spektrum Capacity: 8,600 |

## Qualification
### Qualified teams

| Country | Qualified as | Qualified on | Previous appearances in tournament |
| Austria | Co-host | 20 September 2014 | 3 (2010, 2014, 2018) |
| Norway | Co-host | 20 September 2014 | 8 (2000, 2006, 2008, 2010, 2012, 2014, 2016, 2018) |
| Sweden | Co-host | 20 September 2014 | 12 (1994, 1996, 1998, 2000, 2002, 2004, 2008, 2010, 2012, 2014, 2016, 2018) |
| Spain | Defending champion | 26 January 2018 | 13 (1994, 1996, 1998, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016, 2018) |
| Germany | Group 1 winner | 13 April 2019 | 12 (1994, 1996, 1998, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2016, 2018) |
| Slovenia | Group 4 winner | 14 April 2019 | 11 (1994, 1996, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2016, 2018) |
| Croatia | Group 2 winner | 14 April 2019 | 13 (1994, 1996, 1998, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016, 2018) |
| North Macedonia | Group 3 winner | 12 June 2019 | 5 (1998, 2012, 2014, 2016, 2018) |
| Denmark | Group 8 winner | 12 June 2019 | 12 (1994, 1996, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016, 2018) |
| Hungary | Group 7 winner | 12 June 2019 | 11 (1994, 1996, 1998, 2004, 2006, 2008, 2010, 2012, 2014, 2016, 2018) |
| Latvia | Group 4 runner-up | 12 June 2019 | 0 (debut) |
| Portugal | Group 6 runner-up | 13 June 2019 | 5 (1994, 2000, 2002, 2004, 2006) |
| France | Group 6 winner | 13 June 2019 | 13 (1994, 1996, 1998, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016, 2018) |
| Russia | Group 7 runner-up | 13 June 2019 | 12 (1994, 1996, 1998, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016) |
| Czech Republic | Group 5 winner | 13 June 2019 | 9 (1996, 1998, 2002, 2004, 2008, 2010, 2012, 2014, 2018) |
| Belarus | Group 5 runner-up | 13 June 2019 | 5 (1994, 2008, 2014, 2016, 2018) |
| Poland | Group 1 runner-up | 16 June 2019 | 8 (2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016) |
| Switzerland | Group 2 runner-up | 16 June 2019 | 3 (2002, 2004, 2006) |
| Iceland | Group 3 runner-up | 16 June 2019 | 10 (2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016, 2018) |
| Montenegro | Group 8 runner-up | 16 June 2019 | 4 (2008, 2014, 2016, 2018) |
| Bosnia and Herzegovina | Group 5 third place | 16 June 2019 | 0 (debut) |
| Serbia | Group 2 third place | 16 June 2019 | 5 (2010, 2012, 2014, 2016, 2018) |
| Netherlands | Group 4 third place | 16 June 2019 | 0 (debut) |
| Ukraine | Group 8 third place | 16 June 2019 | 5 (2000, 2002, 2004, 2006, 2010) |
Note: Bold indicates champion for that year. Italic indicates host for that year.

## Marketing

The official anthem of the competition is "All for us", made and performed by Swedish DJ and producer Wahlstedt.

## Draw

The draw was held at the Erste Bank Campus in Vienna on 28 June 2019.

### Seeding

The seedings were announced on 17 June 2019.
| Pot 1 | Pot 2 | Pot 3 | Pot 4 |
| Spain  Sweden (assigned to F1)  France  Denmark (assigned to E1)  Croatia (assigned to A1)  Czech Republic | Norway (assigned to D2)  Slovenia  Germany (assigned to C2)  North Macedonia  Hungary  Belarus | Austria (assigned to B3)  Iceland  Montenegro  Portugal  Switzerland  Latvia | Poland  Russia  Serbia  Ukraine  Bosnia and Herzegovina  Netherlands |

## Match officials

On 21 August 2019, 23 couples were announced. On 27 December 2019, EHF replaced the Serbian referee pair Nenad Nikolić and Dušan Stojković with the Latvian referee pair Zigmārs Sondors and Renārs Līcis, due to an injury and late recovery of Nikolić in late October.
Preliminary round :
| Country | Referees |
| Austria | Radojko Brkić Andrej Jusufhodžić |
| Croatia | Dalibor Jurinović Marko Mrvica |
| Denmark | Jesper Madsen Henrik Mortensen |
| France | Charlotte Bonaventura Julie Bonaventura |
| Germany | Robert Schulze Tobias Tönnies |
| Iceland | Jónas Elíasson Anton Pálsson |
| Norway | Lars Jørum Håvard Kleven |
| Latvia | Zigmārs Sondors Renārs Līcis |
| Slovakia | Michal Baďura Jaroslav Ondogrecula |
| Slovenia | Bojan Lah David Sok |
| Spain | Andreu Marín Ignacio García |
Preliminary and main round :
| Country | Referees |
| Czech Republic | Václav Horáček Jiří Novotný |
| Lithuania | Vaidas Mažeika Mindaugas Gatelis |
| Montenegro | Ivan Pavićević Miloš Ražnatović |
| North Macedonia | Gjorgi Nachevski Slave Nikolov |
| Portugal | Duarte Santos Ricardo Fonseca |
| Sweden | Mirza Kurtagic Mattias Wetterwik |
| Switzerland | Arthur Brunner Morad Salah |
Main round :
| Country | Referees |
| Croatia | Matija Gubica Boris Milošević |
| Denmark | Martin Gjeding Mads Hansen |
| France | Stevann Pichon Laurent Reveret |
| Germany | Lars Geipel Marcus Helbig |
| Spain | Óscar Raluy Ángel Sabroso |

## Preliminary round

All times are local (UTC+1).

### Group A

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Croatia | 3 | 3 | 0 | 0 | 82 | 65 | +17 | 6 | Main round |
| 2 | Belarus | 3 | 2 | 0 | 1 | 94 | 88 | +6 | 4 | Main round |
| 3 | Montenegro | 3 | 1 | 0 | 2 | 70 | 84 | −14 | 2 | |
| 4 | Serbia | 3 | 0 | 0 | 3 | 72 | 81 | −9 | 0 | |
| 9 January 2020 18:15 | Belarus | 35–30 | Serbia | Stadthalle Graz, Graz Attendance: 3,806 Referees: Santos, Fonseca (POR) |
| 9 January 2020 18:15 | Karalek 9 | (16–15) | Radivojević 6 | Stadthalle Graz, Graz Attendance: 3,806 Referees: Santos, Fonseca (POR) |
| 9 January 2020 18:15 | 1× 9× | Report | 2× 3× | Stadthalle Graz, Graz Attendance: 3,806 Referees: Santos, Fonseca (POR) |
| 9 January 2020 20:30 | Croatia | 27–21 | Montenegro | Stadthalle Graz, Graz Attendance: 5,630 Referees: Brunner, Salah (SUI) |
| 9 January 2020 20:30 | Cindrić 6 | (12–13) | Grbović 6 | Stadthalle Graz, Graz Attendance: 5,630 Referees: Brunner, Salah (SUI) |
| 9 January 2020 20:30 | 2× 2× | Report | 3× 7× | Stadthalle Graz, Graz Attendance: 5,630 Referees: Brunner, Salah (SUI) |
| 11 January 2020 16:00 | Croatia | 31–23 | Belarus | Stadthalle Graz, Graz Attendance: 6,000 Referees: Bonaventura, Bonaventura (FRA) |
| 11 January 2020 16:00 | Karačić 6 | (15–10) | Vailupau 8 | Stadthalle Graz, Graz Attendance: 6,000 Referees: Bonaventura, Bonaventura (FRA) |
| 11 January 2020 16:00 | 4× | Report | 1× 5× | Stadthalle Graz, Graz Attendance: 6,000 Referees: Bonaventura, Bonaventura (FRA) |
| 11 January 2020 18:15 | Montenegro | 22–21 | Serbia | Stadthalle Graz, Graz Attendance: 5,500 Referees: Madsen, Mortensen (DEN) |
| 11 January 2020 18:15 | Grbović 5 | (11–10) | Kukić 6 | Stadthalle Graz, Graz Attendance: 5,500 Referees: Madsen, Mortensen (DEN) |
| 11 January 2020 18:15 | 2× 7× | Report | 1× 4× | Stadthalle Graz, Graz Attendance: 5,500 Referees: Madsen, Mortensen (DEN) |
| 13 January 2020 18:15 | Montenegro | 27–36 | Belarus | Stadthalle Graz, Graz Attendance: 5,000 Referees: Jørum, Kleven (NOR) |
| 13 January 2020 18:15 | Lipovina 5 | (11–17) | Vailupau 7 | Stadthalle Graz, Graz Attendance: 5,000 Referees: Jørum, Kleven (NOR) |
| 13 January 2020 18:15 | 1× 2× | Report | 1× 3× | Stadthalle Graz, Graz Attendance: 5,000 Referees: Jørum, Kleven (NOR) |
| 13 January 2020 20:30 | Serbia | 21–24 | Croatia | Stadthalle Graz, Graz Attendance: 6,500 Referees: Kurtagic, Wetterwik (SWE) |
| 13 January 2020 20:30 | Kukić, Radivojević 4 | (10–8) | Duvnjak, Stepančić 5 | Stadthalle Graz, Graz Attendance: 6,500 Referees: Kurtagic, Wetterwik (SWE) |
| 13 January 2020 20:30 | 4× 1× | Report | 2× 5× | Stadthalle Graz, Graz Attendance: 6,500 Referees: Kurtagic, Wetterwik (SWE) |

### Group B

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Austria (H) | 3 | 3 | 0 | 0 | 98 | 87 | +11 | 6 | Main round |
| 2 | Czech Republic | 3 | 2 | 0 | 1 | 79 | 76 | +3 | 4 | Main round |
| 3 | North Macedonia | 3 | 1 | 0 | 2 | 79 | 84 | −5 | 2 | |
| 4 | Ukraine | 3 | 0 | 0 | 3 | 74 | 83 | −9 | 0 | |
| 10 January 2020 18:15 | Czech Republic | 29–32 | Austria | Wiener Stadthalle, Vienna Attendance: 7,070 Referees: Elíasson, Pálsson (ISL) |
| 10 January 2020 18:15 | Hrstka 6 | (14–13) | Bilyk 12 | Wiener Stadthalle, Vienna Attendance: 7,070 Referees: Elíasson, Pálsson (ISL) |
| 10 January 2020 18:15 | 3× | Report | 1× 5× | Wiener Stadthalle, Vienna Attendance: 7,070 Referees: Elíasson, Pálsson (ISL) |
| 10 January 2020 20:30 | North Macedonia | 26–25 | Ukraine | Wiener Stadthalle, Vienna Attendance: 7,070 Referees: Jørum, Kleven (NOR) |
| 10 January 2020 20:30 | Lazarov 8 | (13–10) | Ostroushko 5 | Wiener Stadthalle, Vienna Attendance: 7,070 Referees: Jørum, Kleven (NOR) |
| 10 January 2020 20:30 | 1× 3× | Report | 1× 7× | Wiener Stadthalle, Vienna Attendance: 7,070 Referees: Jørum, Kleven (NOR) |
| 12 January 2020 16:00 | Czech Republic | 27–25 | North Macedonia | Wiener Stadthalle, Vienna Attendance: 6,642 Referees: Kurtagic, Wetterwik (SWE) |
| 12 January 2020 16:00 | Kašpárek 7 | (9–11) | Lazarov 11 | Wiener Stadthalle, Vienna Attendance: 6,642 Referees: Kurtagic, Wetterwik (SWE) |
| 12 January 2020 16:00 | 1× 6× | Report | 1× 3× | Wiener Stadthalle, Vienna Attendance: 6,642 Referees: Kurtagic, Wetterwik (SWE) |
| 12 January 2020 18:15 | Austria | 34–30 | Ukraine | Wiener Stadthalle, Vienna Attendance: 7,078 Referees: Bonaventura, Bonaventura (FRA) |
| 12 January 2020 18:15 | Bilyk 10 | (18–17) | Kozakevych 7 | Wiener Stadthalle, Vienna Attendance: 7,078 Referees: Bonaventura, Bonaventura (FRA) |
| 12 January 2020 18:15 | 1× 3× | Report | 4× | Wiener Stadthalle, Vienna Attendance: 7,078 Referees: Bonaventura, Bonaventura (FRA) |
| 14 January 2020 18:15 | Austria | 32–28 | North Macedonia | Wiener Stadthalle, Vienna Attendance: 7,623 Referees: Lah, Sok (SLO) |
| 14 January 2020 18:15 | Weber 7 | (18–12) | Stoilov 5 | Wiener Stadthalle, Vienna Attendance: 7,623 Referees: Lah, Sok (SLO) |
| 14 January 2020 18:15 | 2× 4× | Report | 3× 3× | Wiener Stadthalle, Vienna Attendance: 7,623 Referees: Lah, Sok (SLO) |
| 14 January 2020 20:30 | Ukraine | 19–23 | Czech Republic | Wiener Stadthalle, Vienna Attendance: 4,097 Referees: Santos, Fonseca (POR) |
| 14 January 2020 20:30 | Kozakevych 4 | (10–9) | Babák 6 | Wiener Stadthalle, Vienna Attendance: 4,097 Referees: Santos, Fonseca (POR) |
| 14 January 2020 20:30 | 1× 5× | Report | 1× 3× | Wiener Stadthalle, Vienna Attendance: 4,097 Referees: Santos, Fonseca (POR) |

### Group C

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Spain | 3 | 3 | 0 | 0 | 102 | 73 | +29 | 6 | Main round |
| 2 | Germany | 3 | 2 | 0 | 1 | 88 | 83 | +5 | 4 | Main round |
| 3 | Netherlands | 3 | 1 | 0 | 2 | 80 | 94 | −14 | 2 | |
| 4 | Latvia | 3 | 0 | 0 | 3 | 73 | 93 | −20 | 0 | |
| 9 January 2020 18:15 | Germany | 34–23 | Netherlands | Trondheim Spektrum, Trondheim Attendance: 4,057 Referees: Lah, Sok (SLO) |
| 9 January 2020 18:15 | Häfner, Kohlbacher 5 | (15–13) | Smits 7 | Trondheim Spektrum, Trondheim Attendance: 4,057 Referees: Lah, Sok (SLO) |
| 9 January 2020 18:15 | 2× 5× 1× | Report | 2× 4× | Trondheim Spektrum, Trondheim Attendance: 4,057 Referees: Lah, Sok (SLO) |
| 9 January 2020 20:30 | Spain | 33–22 | Latvia | Trondheim Spektrum, Trondheim Attendance: 4,524 Referees: Madsen, Mortensen (DEN) |
| 9 January 2020 20:30 | Fernández Pérez 5 | (14–11) | Krištopāns 7 | Trondheim Spektrum, Trondheim Attendance: 4,524 Referees: Madsen, Mortensen (DEN) |
| 9 January 2020 20:30 | 1× 2× | Report | 1× 5× | Trondheim Spektrum, Trondheim Attendance: 4,524 Referees: Madsen, Mortensen (DEN) |
| 11 January 2020 16:00 | Latvia | 24–32 | Netherlands | Trondheim Spektrum, Trondheim Attendance: 5,942 Referees: Baďura, Ondogrecula (SVK) |
| 11 January 2020 16:00 | Krištopāns 7 | (10–16) | Smits 7 | Trondheim Spektrum, Trondheim Attendance: 5,942 Referees: Baďura, Ondogrecula (SVK) |
| 11 January 2020 16:00 | 1× 3× | Report | 1× 5× 1× | Trondheim Spektrum, Trondheim Attendance: 5,942 Referees: Baďura, Ondogrecula (SVK) |
| 11 January 2020 18:15 | Spain | 33–26 | Germany | Trondheim Spektrum, Trondheim Attendance: 6,558 Referees: Brunner, Salah (SUI) |
| 11 January 2020 18:15 | A. Dujshebaev 7 | (14–11) | Pekeler 5 | Trondheim Spektrum, Trondheim Attendance: 6,558 Referees: Brunner, Salah (SUI) |
| 11 January 2020 18:15 | 2× 4× | Report | 2× 4× | Trondheim Spektrum, Trondheim Attendance: 6,558 Referees: Brunner, Salah (SUI) |
| 13 January 2020 18:15 | Latvia | 27–28 | Germany | Trondheim Spektrum, Trondheim Attendance: 3,540 Referees: Elíasson, Pálsson (ISL) |
| 13 January 2020 18:15 | Krištopāns 7 | (11–16) | Kühn 8 | Trondheim Spektrum, Trondheim Attendance: 3,540 Referees: Elíasson, Pálsson (ISL) |
| 13 January 2020 18:15 | 1× 6× | Report | 2× 6× | Trondheim Spektrum, Trondheim Attendance: 3,540 Referees: Elíasson, Pálsson (ISL) |
| 13 January 2020 20:30 | Netherlands | 25–36 | Spain | Trondheim Spektrum, Trondheim Attendance: 3,809 Referees: Mažeika, Gatelis (LTU) |
| 13 January 2020 20:30 | Smits 8 | (13–17) | Maqueda 6 | Trondheim Spektrum, Trondheim Attendance: 3,809 Referees: Mažeika, Gatelis (LTU) |
| 13 January 2020 20:30 | 2× 8× | Report | 2× 2× | Trondheim Spektrum, Trondheim Attendance: 3,809 Referees: Mažeika, Gatelis (LTU) |

### Group D

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Norway (H) | 3 | 3 | 0 | 0 | 94 | 80 | +14 | 6 | Main round |
| 2 | Portugal | 3 | 2 | 0 | 1 | 83 | 83 | 0 | 4 | Main round |
| 3 | France | 3 | 1 | 0 | 2 | 82 | 79 | +3 | 2 | |
| 4 | Bosnia and Herzegovina | 3 | 0 | 0 | 3 | 73 | 90 | −17 | 0 | |
| 10 January 2020 18:15 | France | 25–28 | Portugal | Trondheim Spektrum, Trondheim Attendance: 7,507 Referees: Sondors, Līcis (LAT) |
| 10 January 2020 18:15 | Mem 5 | (11–12) | Branquinho 5 | Trondheim Spektrum, Trondheim Attendance: 7,507 Referees: Sondors, Līcis (LAT) |
| 10 January 2020 18:15 | 2× 3× | Report | 1× 4× | Trondheim Spektrum, Trondheim Attendance: 7,507 Referees: Sondors, Līcis (LAT) |
| 10 January 2020 20:30 | Norway | 32–26 | Bosnia and Herzegovina | Trondheim Spektrum, Trondheim Attendance: 8,232 Referees: Schulze, Tönnies (GER) |
| 10 January 2020 20:30 | Sagosen 12 | (17–12) | Prce 7 | Trondheim Spektrum, Trondheim Attendance: 8,232 Referees: Schulze, Tönnies (GER) |
| 10 January 2020 20:30 | 1× 4× | Report | 1× 6× | Trondheim Spektrum, Trondheim Attendance: 8,232 Referees: Schulze, Tönnies (GER) |
| 12 January 2020 16:00 | Portugal | 27–24 | Bosnia and Herzegovina | Trondheim Spektrum, Trondheim Attendance: 7,936 Referees: Mažeika, Gatelis (LTU) |
| 12 January 2020 16:00 | Portela 10 | (12–11) | Prce 5 | Trondheim Spektrum, Trondheim Attendance: 7,936 Referees: Mažeika, Gatelis (LTU) |
| 12 January 2020 16:00 | 1× 3× | Report | 2× 4× | Trondheim Spektrum, Trondheim Attendance: 7,936 Referees: Mažeika, Gatelis (LTU) |
| 12 January 2020 18:15 | France | 26–28 | Norway | Trondheim Spektrum, Trondheim Attendance: 8,932 Referees: Horáček, Novotný (CZE) |
| 12 January 2020 18:15 | Fabregas 8 | (15–14) | Sagosen 10 | Trondheim Spektrum, Trondheim Attendance: 8,932 Referees: Horáček, Novotný (CZE) |
| 12 January 2020 18:15 | 1× 5× | Report | 3× 2× | Trondheim Spektrum, Trondheim Attendance: 8,932 Referees: Horáček, Novotný (CZE) |
| 14 January 2020 18:15 | Bosnia and Herzegovina | 23–31 | France | Trondheim Spektrum, Trondheim Attendance: 7,937 Referees: Jurinović, Mrvica (CRO) |
| 14 January 2020 18:15 | Panić 9 | (13–14) | Porte 7 | Trondheim Spektrum, Trondheim Attendance: 7,937 Referees: Jurinović, Mrvica (CRO) |
| 14 January 2020 18:15 | 4× | Report | 2× 2× | Trondheim Spektrum, Trondheim Attendance: 7,937 Referees: Jurinović, Mrvica (CRO) |
| 14 January 2020 20:30 | Portugal | 28–34 | Norway | Trondheim Spektrum, Trondheim Attendance: 9,069 Referees: Baďura, Ondogrecula (SVK) |
| 14 January 2020 20:30 | Areia 5 | (14–16) | Jøndal 7 | Trondheim Spektrum, Trondheim Attendance: 9,069 Referees: Baďura, Ondogrecula (SVK) |
| 14 January 2020 20:30 | 2× 6× | Report | 3× 5× | Trondheim Spektrum, Trondheim Attendance: 9,069 Referees: Baďura, Ondogrecula (SVK) |

### Group E

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Hungary | 3 | 2 | 1 | 0 | 74 | 67 | +7 | 5 | Main round |
| 2 | Iceland | 3 | 2 | 0 | 1 | 83 | 77 | +6 | 4 | Main round |
| 3 | Denmark | 3 | 1 | 1 | 1 | 85 | 83 | +2 | 3 | |
| 4 | Russia | 3 | 0 | 0 | 3 | 76 | 91 | −15 | 0 | |
| 11 January 2020 16:00 | Hungary | 26–25 | Russia | Malmö Arena, Malmö Attendance: 9,202 Referees: Jurinović, Mrvica (CRO) |
| 11 January 2020 16:00 | Balogh 7 | (14–13) | Santalov 5 | Malmö Arena, Malmö Attendance: 9,202 Referees: Jurinović, Mrvica (CRO) |
| 11 January 2020 16:00 | 2× 3× | Report | 2× | Malmö Arena, Malmö Attendance: 9,202 Referees: Jurinović, Mrvica (CRO) |
| 11 January 2020 18:15 | Denmark | 30–31 | Iceland | Malmö Arena, Malmö Attendance: 10,593 Referees: Pavićević, Ražnatović (MNE) |
| 11 January 2020 18:15 | M. Hansen 9 | (15–15) | Pálmarsson 10 | Malmö Arena, Malmö Attendance: 10,593 Referees: Pavićević, Ražnatović (MNE) |
| 11 January 2020 18:15 | 1× 3× 1× | Report | 2× 4× 1× | Malmö Arena, Malmö Attendance: 10,593 Referees: Pavićević, Ražnatović (MNE) |
| 13 January 2020 18:15 | Iceland | 34–23 | Russia | Malmö Arena, Malmö Attendance: 7,099 Referees: Nachevski, Nikolov (MKD) |
| 13 January 2020 18:15 | three players 6 | (18–11) | Kalarash 6 | Malmö Arena, Malmö Attendance: 7,099 Referees: Nachevski, Nikolov (MKD) |
| 13 January 2020 18:15 | 2× 4× | Report | 3× 4× | Malmö Arena, Malmö Attendance: 7,099 Referees: Nachevski, Nikolov (MKD) |
| 13 January 2020 20:30 | Denmark | 24–24 | Hungary | Malmö Arena, Malmö Attendance: 8,377 Referees: Sondors, Līcis (LAT) |
| 13 January 2020 20:30 | Bramming 6 | (11–13) | Balogh 7 | Malmö Arena, Malmö Attendance: 8,377 Referees: Sondors, Līcis (LAT) |
| 13 January 2020 20:30 | 3× 2× | Report | 3× 4× | Malmö Arena, Malmö Attendance: 8,377 Referees: Sondors, Līcis (LAT) |
| 15 January 2020 18:15 | Iceland | 18–24 | Hungary | Malmö Arena, Malmö Attendance: 7,587 Referees: Marín, García (ESP) |
| 15 January 2020 18:15 | Pálmarsson, Sigurðsson 4 | (12–9) | Bánhidi 8 | Malmö Arena, Malmö Attendance: 7,587 Referees: Marín, García (ESP) |
| 15 January 2020 18:15 | 1× 4× | Report | 2× 4× | Malmö Arena, Malmö Attendance: 7,587 Referees: Marín, García (ESP) |
| 15 January 2020 20:30 | Russia | 28–31 | Denmark | Malmö Arena, Malmö Attendance: 8,978 Referees: Brkić, Jusufhodžić (AUT) |
| 15 January 2020 20:30 | Soroka 6 | (15–12) | M. Hansen 7 | Malmö Arena, Malmö Attendance: 8,978 Referees: Brkić, Jusufhodžić (AUT) |
| 15 January 2020 20:30 | 3× 3× | Report | 1× 2× | Malmö Arena, Malmö Attendance: 8,978 Referees: Brkić, Jusufhodžić (AUT) |

### Group F

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Slovenia | 3 | 3 | 0 | 0 | 76 | 67 | +9 | 6 | Main round |
| 2 | Sweden (H) | 3 | 2 | 0 | 1 | 81 | 68 | +13 | 4 | Main round |
| 3 | Switzerland | 3 | 1 | 0 | 2 | 77 | 87 | −10 | 2 | |
| 4 | Poland | 3 | 0 | 0 | 3 | 73 | 85 | −12 | 0 | |
| 10 January 2020 18:15 | Slovenia | 26–23 | Poland | Scandinavium, Gothenburg Attendance: 7,276 Referees: Horáček, Novotný (CZE) |
| 10 January 2020 18:15 | Blagotinšek, Mačkovšek 5 | (13–11) | Moryto 8 | Scandinavium, Gothenburg Attendance: 7,276 Referees: Horáček, Novotný (CZE) |
| 10 January 2020 18:15 | 1× 5× | Report | 5× | Scandinavium, Gothenburg Attendance: 7,276 Referees: Horáček, Novotný (CZE) |
| 10 January 2020 20:30 | Sweden | 34–21 | Switzerland | Scandinavium, Gothenburg Attendance: 11,644 Referees: Marín, García (ESP) |
| 10 January 2020 20:30 | three players 6 | (20–13) | Schmid 4 | Scandinavium, Gothenburg Attendance: 11,644 Referees: Marín, García (ESP) |
| 10 January 2020 20:30 | 4× | Report | 1× | Scandinavium, Gothenburg Attendance: 11,644 Referees: Marín, García (ESP) |
| 12 January 2020 16:00 | Switzerland | 31–24 | Poland | Scandinavium, Gothenburg Attendance: 8,061 Referees: Brkić, Jusufhodžić (AUT) |
| 12 January 2020 16:00 | Schmid 15 | (14–12) | Sićko 5 | Scandinavium, Gothenburg Attendance: 8,061 Referees: Brkić, Jusufhodžić (AUT) |
| 12 January 2020 16:00 | 2× 5× | Report | 2× 4× | Scandinavium, Gothenburg Attendance: 8,061 Referees: Brkić, Jusufhodžić (AUT) |
| 12 January 2020 18:15 | Sweden | 19–21 | Slovenia | Scandinavium, Gothenburg Attendance: 11,896 Referees: Schulze, Tönnies (GER) |
| 12 January 2020 18:15 | Gottfridsson 5 | (9–10) | Dolenec 7 | Scandinavium, Gothenburg Attendance: 11,896 Referees: Schulze, Tönnies (GER) |
| 12 January 2020 18:15 | 1× 5× | Report | 2× 3× | Scandinavium, Gothenburg Attendance: 11,896 Referees: Schulze, Tönnies (GER) |
| 14 January 2020 18:15 | Switzerland | 25–29 | Slovenia | Scandinavium, Gothenburg Attendance: 6,731 Referees: Pavićević, Ražnatović (MNE) |
| 14 January 2020 18:15 | Schmid 8 | (10–16) | Zarabec 6 | Scandinavium, Gothenburg Attendance: 6,731 Referees: Pavićević, Ražnatović (MNE) |
| 14 January 2020 18:15 | 2× 3× | Report | 2× 2× | Scandinavium, Gothenburg Attendance: 6,731 Referees: Pavićević, Ražnatović (MNE) |
| 14 January 2020 20:30 | Poland | 26–28 | Sweden | Scandinavium, Gothenburg Attendance: 11,061 Referees: Nachevski, Nikolov (MKD) |
| 14 January 2020 20:30 | Sićko 8 | (13–14) | four players 5 | Scandinavium, Gothenburg Attendance: 11,061 Referees: Nachevski, Nikolov (MKD) |
| 14 January 2020 20:30 | 2× 3× | Report | 2× 3× | Scandinavium, Gothenburg Attendance: 11,061 Referees: Nachevski, Nikolov (MKD) |

## Main round

Points and goals gained in the preliminary group against teams that advance were transferred to the main round.

### Group I

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Spain | 5 | 4 | 1 | 0 | 153 | 127 | +26 | 9 | Semi-finals |
| 2 | Croatia | 5 | 4 | 1 | 0 | 127 | 113 | +14 | 9 | Semi-finals |
| 3 | Germany | 5 | 3 | 0 | 2 | 141 | 125 | +16 | 6 | Fifth place game |
| 4 | Austria (H) | 5 | 1 | 1 | 3 | 139 | 156 | −17 | 3 | |
| 5 | Belarus | 5 | 1 | 1 | 3 | 138 | 160 | −22 | 3 | |
| 6 | Czech Republic | 5 | 0 | 0 | 5 | 122 | 139 | −17 | 0 | |
* 1 2 Croatia 22–22 Spain
* 1 2 Belarus 36–36 Austria
| 16 January 2020 16:00 | Spain | 31–25 | Czech Republic | Wiener Stadthalle, Vienna Attendance: 3,986 Referees: Brunner, Salah (SUI) |
| 16 January 2020 16:00 | A. Dujshebaev, Fernández Pérez 5 | (14–9) | Zdráhala 8 | Wiener Stadthalle, Vienna Attendance: 3,986 Referees: Brunner, Salah (SUI) |
| 16 January 2020 16:00 | 1× 4× | Report | 2× 6× | Wiener Stadthalle, Vienna Attendance: 3,986 Referees: Brunner, Salah (SUI) |
| 16 January 2020 18:15 | Croatia | 27–23 | Austria | Wiener Stadthalle, Vienna Attendance: 8,217 Referees: Pichon, Reveret (FRA) |
| 16 January 2020 18:15 | Horvat 6 | (13–8) | Weber 6 | Wiener Stadthalle, Vienna Attendance: 8,217 Referees: Pichon, Reveret (FRA) |
| 16 January 2020 18:15 | 1× 1× | Report | 1× 5× | Wiener Stadthalle, Vienna Attendance: 8,217 Referees: Pichon, Reveret (FRA) |
| 16 January 2020 20:30 | Belarus | 23–31 | Germany | Wiener Stadthalle, Vienna Attendance: 5,267 Referees: Kurtagic, Wetterwik (SWE) |
| 16 January 2020 20:30 | Kulesh 6 | (11–18) | Kastening 6 | Wiener Stadthalle, Vienna Attendance: 5,267 Referees: Kurtagic, Wetterwik (SWE) |
| 16 January 2020 20:30 | 1× 4× | Report | 1× 5× | Wiener Stadthalle, Vienna Attendance: 5,267 Referees: Kurtagic, Wetterwik (SWE) |
| 18 January 2020 16:00 | Belarus | 28–25 | Czech Republic | Wiener Stadthalle, Vienna Attendance: 6,007 Referees: Mažeika, Gatelis (LTU) |
| 18 January 2020 16:00 | Vailupau 6 | (13–11) | Zdráhala 7 | Wiener Stadthalle, Vienna Attendance: 6,007 Referees: Mažeika, Gatelis (LTU) |
| 18 January 2020 16:00 | 2× 5× | Report | 1× 6× | Wiener Stadthalle, Vienna Attendance: 6,007 Referees: Mažeika, Gatelis (LTU) |
| 18 January 2020 18:15 | Spain | 30–26 | Austria | Wiener Stadthalle, Vienna Attendance: 9,232 Referees: Gjeding, Hansen (DEN) |
| 18 January 2020 18:15 | Maqueda 6 | (17–16) | Božović 5 | Wiener Stadthalle, Vienna Attendance: 9,232 Referees: Gjeding, Hansen (DEN) |
| 18 January 2020 18:15 | 3× | Report | 1× 2× 1× | Wiener Stadthalle, Vienna Attendance: 9,232 Referees: Gjeding, Hansen (DEN) |
| 18 January 2020 20:30 | Croatia | 25–24 | Germany | Wiener Stadthalle, Vienna Attendance: 9,307 Referees: Santos, Fonseca (POR) |
| 18 January 2020 20:30 | Karačić 7 | (11–14) | four players 4 | Wiener Stadthalle, Vienna Attendance: 9,307 Referees: Santos, Fonseca (POR) |
| 18 January 2020 20:30 | 2× 4× | Report | 2× 8× | Wiener Stadthalle, Vienna Attendance: 9,307 Referees: Santos, Fonseca (POR) |
| 20 January 2020 16:00 | Croatia | 22–21 | Czech Republic | Wiener Stadthalle, Vienna Attendance: 6,862 Referees: Kurtagic, Wetterwik (SWE) |
| 20 January 2020 16:00 | Mamić 5 | (11–9) | Zdráhala 7 | Wiener Stadthalle, Vienna Attendance: 6,862 Referees: Kurtagic, Wetterwik (SWE) |
| 20 January 2020 16:00 | 1× 4× | Report | 1× 3× | Wiener Stadthalle, Vienna Attendance: 6,862 Referees: Kurtagic, Wetterwik (SWE) |
| 20 January 2020 18:15 | Belarus | 28–37 | Spain | Wiener Stadthalle, Vienna Attendance: 6,149 Referees: Santos, Fonseca (POR) |
| 20 January 2020 18:15 | Vailupau 8 | (16–17) | Fernández Pérez, Solé 7 | Wiener Stadthalle, Vienna Attendance: 6,149 Referees: Santos, Fonseca (POR) |
| 20 January 2020 18:15 | 1× 5× 1× | Report | 1× 3× | Wiener Stadthalle, Vienna Attendance: 6,149 Referees: Santos, Fonseca (POR) |
| 20 January 2020 20:30 | Austria | 22–34 | Germany | Wiener Stadthalle, Vienna Attendance: 9,037 Referees: Nachevski, Nikolov (MKD) |
| 20 January 2020 20:30 | Bilyk 5 | (13–16) | Kastening 6 | Wiener Stadthalle, Vienna Attendance: 9,037 Referees: Nachevski, Nikolov (MKD) |
| 20 January 2020 20:30 | 2× 4× | Report | 2× 2× | Wiener Stadthalle, Vienna Attendance: 9,037 Referees: Nachevski, Nikolov (MKD) |
| 22 January 2020 16:00 | Croatia | 22–22 | Spain | Wiener Stadthalle, Vienna Attendance: 7,891 Referees: Mažeika, Gatelis (LTU) |
| 22 January 2020 16:00 | Karačić 10 | (11–12) | A. Dujshebaev 6 | Wiener Stadthalle, Vienna Attendance: 7,891 Referees: Mažeika, Gatelis (LTU) |
| 22 January 2020 16:00 | 4× 4× | Report | 5× | Wiener Stadthalle, Vienna Attendance: 7,891 Referees: Mažeika, Gatelis (LTU) |
| 22 January 2020 18:15 | Belarus | 36–36 | Austria | Wiener Stadthalle, Vienna Attendance: 6,897 Referees: Brunner, Salah (SUI) |
| 22 January 2020 18:15 | Vailupau 12 | (19–17) | Bilyk 7 | Wiener Stadthalle, Vienna Attendance: 6,897 Referees: Brunner, Salah (SUI) |
| 22 January 2020 18:15 | 3× 3× | Report | 1× 4× | Wiener Stadthalle, Vienna Attendance: 6,897 Referees: Brunner, Salah (SUI) |
| 22 January 2020 20:30 | Czech Republic | 22–26 | Germany | Wiener Stadthalle, Vienna Attendance: 5,000 Referees: Pavićević, Ražnatović (MNE) |
| 22 January 2020 20:30 | Babák 5 | (10–13) | Weber 5 | Wiener Stadthalle, Vienna Attendance: 5,000 Referees: Pavićević, Ražnatović (MNE) |
| 22 January 2020 20:30 | 8× | Report | 1× 6× 1× | Wiener Stadthalle, Vienna Attendance: 5,000 Referees: Pavićević, Ražnatović (MNE) |

### Group II

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Norway | 5 | 5 | 0 | 0 | 157 | 135 | +22 | 10 | Semi-finals |
| 2 | Slovenia | 5 | 3 | 0 | 2 | 138 | 132 | +6 | 6 | Semi-finals |
| 3 | Portugal | 5 | 2 | 0 | 3 | 146 | 142 | +4 | 4 | Fifth place game |
| 4 | Sweden (H) | 5 | 2 | 0 | 3 | 120 | 122 | −2 | 4 | |
| 5 | Hungary | 5 | 2 | 0 | 3 | 126 | 140 | −14 | 4 | |
| 6 | Iceland | 5 | 1 | 0 | 4 | 126 | 142 | −16 | 2 | |
* 1 2 3 Portugal 4 Pts, +18 GD; Sweden 2 Pts, −4 GD; Hungary 0 Pts, −14 GD
| 17 January 2020 16:00 | Slovenia | 30–27 | Iceland | Malmö Arena, Malmö Attendance: 6,026 Referees: Nachevski, Nikolov (MKD) |
| 17 January 2020 16:00 | Bombač 9 | (15–14) | Elísson 6 | Malmö Arena, Malmö Attendance: 6,026 Referees: Nachevski, Nikolov (MKD) |
| 17 January 2020 16:00 | 1× 4× | Report | 2× 4× | Malmö Arena, Malmö Attendance: 6,026 Referees: Nachevski, Nikolov (MKD) |
| 17 January 2020 18:15 | Norway | 36–29 | Hungary | Malmö Arena, Malmö Attendance: 8,078 Referees: Pavićević, Ražnatović (MNE) |
| 17 January 2020 18:15 | Sagosen 7 | (20–12) | Ligetvári, Nagy 5 | Malmö Arena, Malmö Attendance: 8,078 Referees: Pavićević, Ražnatović (MNE) |
| 17 January 2020 18:15 | 3× 4× | Report | 3× 4× 1× | Malmö Arena, Malmö Attendance: 8,078 Referees: Pavićević, Ražnatović (MNE) |
| 17 January 2020 20:30 | Portugal | 35–25 | Sweden | Malmö Arena, Malmö Attendance: 10,135 Referees: Gubica, Milošević (CRO) |
| 17 January 2020 20:30 | three players 6 | (15–12) | Nilsson, Pettersson 4 | Malmö Arena, Malmö Attendance: 10,135 Referees: Gubica, Milošević (CRO) |
| 17 January 2020 20:30 | 1× 5× | Report | 1× 2× | Malmö Arena, Malmö Attendance: 10,135 Referees: Gubica, Milošević (CRO) |
| 19 January 2020 14:00 | Portugal | 25–28 | Iceland | Malmö Arena, Malmö Attendance: 6,199 Referees: Horáček, Novotný (CZE) |
| 19 January 2020 14:00 | Areia, Martins 4 | (12–14) | Smárason 8 | Malmö Arena, Malmö Attendance: 6,199 Referees: Horáček, Novotný (CZE) |
| 19 January 2020 14:00 | 2× 4× | Report | 3× 4× | Malmö Arena, Malmö Attendance: 6,199 Referees: Horáček, Novotný (CZE) |
| 19 January 2020 16:15 | Slovenia | 28–29 | Hungary | Malmö Arena, Malmö Attendance: 8,304 Referees: Raluy, Sabroso (ESP) |
| 19 January 2020 16:15 | Dolenec 8 | (16–13) | Bánhidi 9 | Malmö Arena, Malmö Attendance: 8,304 Referees: Raluy, Sabroso (ESP) |
| 19 January 2020 16:15 | 2× 5× | Report | 2× 5× | Malmö Arena, Malmö Attendance: 8,304 Referees: Raluy, Sabroso (ESP) |
| 19 January 2020 18:30 | Norway | 23–20 | Sweden | Malmö Arena, Malmö Attendance: 10,141 Referees: Geipel, Helbig (GER) |
| 19 January 2020 18:30 | Sagosen 8 | (12–8) | Pellas 5 | Malmö Arena, Malmö Attendance: 10,141 Referees: Geipel, Helbig (GER) |
| 19 January 2020 18:30 | 2× 5× | Report | 2× 1× | Malmö Arena, Malmö Attendance: 10,141 Referees: Geipel, Helbig (GER) |
| 21 January 2020 16:00 | Portugal | 24–29 | Slovenia | Malmö Arena, Malmö Attendance: 3,001 Referees: Gjeding, Hansen (DEN) |
| 21 January 2020 16:00 | Gomes 6 | (15–14) | Janc 7 | Malmö Arena, Malmö Attendance: 3,001 Referees: Gjeding, Hansen (DEN) |
| 21 January 2020 16:00 | 1× 5× | Report | 2× 4× | Malmö Arena, Malmö Attendance: 3,001 Referees: Gjeding, Hansen (DEN) |
| 21 January 2020 18:15 | Norway | 31–28 | Iceland | Malmö Arena, Malmö Attendance: 4,725 Referees: Raluy, Sabroso (ESP) |
| 21 January 2020 18:15 | Sagosen 9 | (19–12) | Guðmundsson 6 | Malmö Arena, Malmö Attendance: 4,725 Referees: Raluy, Sabroso (ESP) |
| 21 January 2020 18:15 | 2× 6× | Report | 1× 4× | Malmö Arena, Malmö Attendance: 4,725 Referees: Raluy, Sabroso (ESP) |
| 21 January 2020 20:30 | Hungary | 18–24 | Sweden | Malmö Arena, Malmö Attendance: 6,977 Referees: Horáček, Novotný (CZE) |
| 21 January 2020 20:30 | Szita 4 | (9–10) | Gottfridsson, Pellas 5 | Malmö Arena, Malmö Attendance: 6,977 Referees: Horáček, Novotný (CZE) |
| 21 January 2020 20:30 | 3× | Report | 1× | Malmö Arena, Malmö Attendance: 6,977 Referees: Horáček, Novotný (CZE) |
| 22 January 2020 16:00 | Portugal | 34–26 | Hungary | Malmö Arena, Malmö Attendance: 2,930 Referees: Geipel, Helbig (GER) |
| 22 January 2020 16:00 | Moreira 7 | (16–14) | Balogh, Bánhidi 5 | Malmö Arena, Malmö Attendance: 2,930 Referees: Geipel, Helbig (GER) |
| 22 January 2020 16:00 | 3× 3× | Report | 2× 2× | Malmö Arena, Malmö Attendance: 2,930 Referees: Geipel, Helbig (GER) |
| 22 January 2020 18:15 | Norway | 33–30 | Slovenia | Malmö Arena, Malmö Attendance: 4,824 Referees: Pichon, Reveret (FRA) |
| 22 January 2020 18:15 | Gulliksen 7 | (14–13) | Cehte, Kodrin 5 | Malmö Arena, Malmö Attendance: 4,824 Referees: Pichon, Reveret (FRA) |
| 22 January 2020 18:15 | 1× 3× | Report | 1× 3× | Malmö Arena, Malmö Attendance: 4,824 Referees: Pichon, Reveret (FRA) |
| 22 January 2020 20:30 | Iceland | 25–32 | Sweden | Malmö Arena, Malmö Attendance: 7,153 Referees: Gubica, Milošević (CRO) |
| 22 January 2020 20:30 | Elísson, Kristjánsson 5 | (11–18) | Nilsson 7 | Malmö Arena, Malmö Attendance: 7,153 Referees: Gubica, Milošević (CRO) |
| 22 January 2020 20:30 | 2× | Report | 1× 4× | Malmö Arena, Malmö Attendance: 7,153 Referees: Gubica, Milošević (CRO) |

## Knockout stage
### Bracket

| Semi-finals | Semi-finals | Final | Final |
| 24 January | 24 January |
| Spain | 34 |
| Spain | 34 | 26 January | 26 January |
| Slovenia | 32 | 26 January | 26 January |
| Slovenia | 32 | Spain | 22 |
| 24 January | 24 January | | Spain | 22 |
| 24 January | 24 January | Croatia | 20 |
| Norway | 28 | Croatia | 20 |
| Croatia (ET) | 29 | | |
| Croatia (ET) | 29 | Third place | Third place |
| | | 25 January | 25 January |
| | | Slovenia | 20 |
| | | Norway | 28 |

### Semi-finals

| 24 January 2020 18:00 | Norway | 28–29 (ET) | Croatia | Tele2 Arena, Stockholm Attendance: 16,573 Referees: Raluy, Sabroso (ESP) |
| 24 January 2020 18:00 | Sagosen 10 | (10–12) | Duvnjak 8 | Tele2 Arena, Stockholm Attendance: 16,573 Referees: Raluy, Sabroso (ESP) |
| 24 January 2020 18:00 | 3× 4× | Report | 2× 6× | Tele2 Arena, Stockholm Attendance: 16,573 Referees: Raluy, Sabroso (ESP) |
| Tele2 Arena, Stockholm Attendance: 16,573 Referees: Raluy, Sabroso (ESP) |||
| 24 January 2020 20:30 | Spain | 34–32 | Slovenia | Tele2 Arena, Stockholm Attendance: 16,573 Referees: Horáček, Novotný (CZE) |
| 24 January 2020 20:30 | three players 6 | (20–15) | Dolenec 7 | Tele2 Arena, Stockholm Attendance: 16,573 Referees: Horáček, Novotný (CZE) |
| 24 January 2020 20:30 | 3× | Report | 2× 4× | Tele2 Arena, Stockholm Attendance: 16,573 Referees: Horáček, Novotný (CZE) |

### Fifth place game

| 25 January 2020 16:00 | Germany | 29–27 | Portugal | Tele2 Arena, Stockholm Attendance: 7,710 Referees: Kurtagic, Wetterwik (SWE) |
| 25 January 2020 16:00 | Kühn 6 | (14–13) | Borges, Ferraz 4 | Tele2 Arena, Stockholm Attendance: 7,710 Referees: Kurtagic, Wetterwik (SWE) |
| 25 January 2020 16:00 | 1× 3× | Report | 1× 4× | Tele2 Arena, Stockholm Attendance: 7,710 Referees: Kurtagic, Wetterwik (SWE) |

### Third place game

| 25 January 2020 18:30 | Slovenia | 20–28 | Norway | Tele2 Arena, Stockholm Attendance: 13,094 Referees: Geipel, Helbig (GER) |
| 25 January 2020 18:30 | Bombač 5 | (9–12) | Jøndal 7 | Tele2 Arena, Stockholm Attendance: 13,094 Referees: Geipel, Helbig (GER) |
| 25 January 2020 18:30 | 3× 4× | Report | 1× 5× | Tele2 Arena, Stockholm Attendance: 13,094 Referees: Geipel, Helbig (GER) |

### Final

| 26 January 2020 16:30 | Spain | 22–20 | Croatia | Tele2 Arena, Stockholm Attendance: 17,769 Referees: Nachevski, Nikolov (MKD) |
| 26 January 2020 16:30 | Gómez 5 | (12–11) | Duvnjak 5 | Tele2 Arena, Stockholm Attendance: 17,769 Referees: Nachevski, Nikolov (MKD) |
| 26 January 2020 16:30 | 2× 2× | Report | 2× 2× | Tele2 Arena, Stockholm Attendance: 17,769 Referees: Nachevski, Nikolov (MKD) |

## Ranking and statistics
### Final ranking

The teams ranked fourth in each group after the completion of the preliminary round matches were ranked 18 to 24, while teams ranked third in each group after the completion of the preliminary round matches were ranked 13 to 18 according to the number of points won in the preliminary round. Places seven or eight were attributed to the two teams ranked fourth in the groups, places nine and ten were attributed to the two teams ranked fifth in the groups, places eleven and twelve were attributed to the two teams ranked sixth in the group according to the number of points won by the respective teams after completion of the main round matches. Places one to six were decided by play–off or knock–out.
| Rank | Team |
| | Spain |
| | Croatia |
| | Norway |
| 4 | Slovenia |
| 5 | Germany |
| 6 | Portugal |
| 7 | Sweden |
| 8 | Austria |
| 9 | Hungary |
| 10 | Belarus |
| 11 | Iceland |
| 12 | Czech Republic |
| 13 | Denmark |
| 14 | France |
| 15 | North Macedonia |
| 16 | Switzerland |
| 17 | Netherlands |
| 18 | Montenegro |
| 19 | Ukraine |
| 20 | Serbia |
| 21 | Poland |
| 22 | Russia |
| 23 | Bosnia and Herzegovina |
| 24 | Latvia |
* Team qualified for the 2021 World Men's Handball Championship and the 2020 Summer Olympics
* Team qualified for the 2021 World Men's Handball Championship and the Olympic Qualification Tournament
* Team qualified for the Olympic Qualification Tournament
* 2020 Men's European Champions
* Spain Second title
* Team roster: Gonzalo Pérez de Vargas, Jorge Maqueda, Ángel Fernández Pérez, Raúl Entrerríos, Alex Dujshebaev, Daniel Sarmiento Melián, Rodrigo Corrales, Julen Aguinagalde, Ferran Solé, Iosu Goñi Leoz, Adrià Figueras, Joan Cañellas, Viran Morros, Aleix Gómez, Aitor Ariño, Gedeón Guardiola, Daniel Dujshebaev. Head coach: Jordi Ribera.

### All-Star Team

The all-star team and awards were announced on 26 January 2020.
| Position | Player |
| Goalkeeper | Gonzalo Pérez de Vargas (ESP) |
| Right wing | Blaž Janc (SLO) |
| Right back | Jorge Maqueda (ESP) |
| Centre back | Igor Karačić (CRO) |
| Left back | Sander Sagosen (NOR) |
| Left wing | Magnus Jøndal (NOR) |
| Pivot | Bence Bánhidi (HUN) |

### Awards

| Award | Player |
| Most Valuable Player | Domagoj Duvnjak (CRO) |
| Best Defence Player | Hendrik Pekeler (GER) |
| Topscorer | Sander Sagosen (NOR) (65 goals) |