# 2019 World Men's Handball Championship

The 2019 IHF World Men's Handball Championship was the 26th event hosted by the International Handball Federation and held in Denmark and Germany from 10 to 27 January 2019. It was the first IHF World Men's Handball Championship to include more than one host country. It was also the first time a unified Korean team participated.
Denmark, in a clean sweep, won their first title by defeating Norway 31–22 in the final. This was Norway's second final in a row and the first final since 1995 between two nations who had not won before. France captured the bronze medal after a 26–25 win over Germany.
The tournament set a new spectator record with 906,283, helped by the fact that there were two home teams. Biggest number of spectator at single events was 19,250 at Germany's matches in the main round.

## Bidding process

Denmark/Germany presented a bid and were up against competitors from Poland and Slovakia/Hungary. The International Handball Federation announced on 28 October 2013 that Denmark/Germany would be awarded the 2019 World Men's Handball Championship.

## Format

This edition saw a format change back to the one used in 2011. The 24 teams were split into four groups, in which the first three teams qualified for the main round. The bottom three teams of each group played the Presidents' Cup to determine the positions from 13 to 24. In the main round, the 12 teams were split into two groups. Their points from the preliminary round against the other qualified team were carried over, and the best two placed teams in each main round group qualified for the semifinals, while the third- and fourth ranked teams played placement matches. From the semifinals on, a knockout system was used.

## Venues

Following is a list of all venues and host cities which was used. All venues have a capacity of more than 10,000 spectators. The final was held in Jyske Bank Boxen in Herning, Denmark.
| Copenhagen | Copenhagen | Herning | Herning | Berlin | Berlin |
| Royal Arena | Royal Arena | Jyske Bank Boxen | Jyske Bank Boxen | Mercedes-Benz Arena | Mercedes-Benz Arena |
| Capacity: 16,000 | Capacity: 16,000 | Capacity: 15,000 | Capacity: 15,000 | Capacity: 17,000 | Capacity: 17,000 |
| HerningCopenhagen | HerningCopenhagen | HerningCopenhagen | HamburgBerlinMunichCologne | HamburgBerlinMunichCologne | HamburgBerlinMunichCologne |
| Cologne | Cologne | Munich | Munich | Hamburg | Hamburg |
| Lanxess Arena | Lanxess Arena | Olympiahalle | Olympiahalle | Barclaycard Arena | Barclaycard Arena |
| Capacity: 20,000 | Capacity: 20,000 | Capacity: 15,500 | Capacity: 15,500 | Capacity: 16,000 | Capacity: 16,000 |

## Qualification

| Competition | Dates | Vacancies | Qualified |
| Host nations | 28 October 2013 | 2 | Denmark Germany |
| 2017 World Championship | 11–29 January 2017 | 1 | France |
| 2018 European Men's Handball Championship | 12–28 January 2018 | 1 | Spain |
| 2018 African Men's Handball Championship | 17–27 January 2018 | 3 | Angola Egypt Tunisia |
| 2018 Asian Men's Handball Championship | 18–28 January 2018 | 4 | Bahrain Qatar Saudi Arabia South Korea |
| European qualification | 25 October 2017 – 14 June 2018 | 9 | Austria Croatia Hungary Iceland North Macedonia Norway Russia Serbia Sweden |
| 2018 Pan American Men's Handball Championship | 16–24 June 2018 | 3 | Argentina Brazil Chile |
| Wildcard | 9 May 2018 10 October 2018 | 2 | Japan Korea |

### Qualified teams

| Country | Qualified as | Qualified on | Previous appearances |
| Denmark | Host | 28 October 2013 | 22 (1938, 1954, 1958, 1961, 1964, 1967, 1970, 1974, 1978, 1982, 1986, 1993, 1995, 1999, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017) |
| Germany | Host | 28 October 2013 | 24 (1938, 1954, 1958, 1961, 1964, 1967, 1970, 1974, 1978, 1982, 1986, 1990, 1993, 1995, 1999, 2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017) |
| France | World champion | 29 January 2017 | 21 (1954, 1958 ,1961, 1964, 1967, 1970, 1978, 1990, 1993, 1995, 1997, 1999, 2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017) |
| Saudi Arabia | Semifinalist of 2018 Asian Championship | 23 January 2018 | 8 (1997, 1999, 2001, 2003, 2009, 2013, 2015, 2017) |
| Qatar | Semifinalist of 2018 Asian Championship | 23 January 2018 | 6 (2003, 2005, 2007, 2013, 2015, 2017) |
| South Korea | Semifinalist of 2018 Asian Championship | 23 January 2018 | 11 (1986, 1990, 1993, 1995, 1997, 1999, 2001, 2007, 2009, 2011, 2013) |
| Bahrain | Semifinalist of 2018 Asian Championship | 24 January 2018 | 2 (2011, 2017) |
| Tunisia | Finalist of 2018 African Championship | 25 January 2018 | 13 (1967, 1995, 1997, 1999, 2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017) |
| Egypt | Finalist of 2018 African Championship | 25 January 2018 | 14 (1964, 1993, 1995, 1997, 1999, 2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017) |
| Angola | Third place of 2018 African Championship | 27 January 2018 | 3 (2005, 2007, 2017) |
| Spain | European Champion | 28 January 2018 | 19 (1958, 1974, 1978, 1982, 1986, 1990, 1993, 1995, 1997, 1999, 2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017) |
| Japan | Wildcard | 9 May 2018 | 14 (1961, 1964, 1967, 1970, 1974, 1978, 1982, 1990, 1995, 1997, 2005, 2011, 2017) |
| Russia | European playoffs | 12 June 2018 | 12 (1993, 1995, 1997, 1999, 2001, 2003, 2005, 2007, 2009, 2013, 2015, 2017) |
| Norway | European playoffs | 12 June 2018 | 14 (1958, 1961, 1964, 1967, 1970, 1993, 1997, 1999, 2001, 2005, 2007, 2009, 2011, 2017) |
| North Macedonia | European playoffs | 13 June 2018 | 5 (1999, 2009, 2013, 2015, 2017) |
| Hungary | European playoffs | 13 June 2018 | 19 (1958, 1964, 1967, 1970, 1974, 1978, 1982, 1986, 1990, 1993, 1995, 1997, 1999, 2003, 2007, 2009, 2011, 2013, 2017) |
| Sweden | European playoffs | 13 June 2018 | 23 (1938, 1954, 1958, 1961, 1964, 1967, 1970, 1974, 1978, 1982, 1986, 1990, 1993, 1995, 1997, 1999, 2001, 2003, 2005, 2009, 2011, 2015, 2017) |
| Austria | European playoffs | 13 June 2018 | 5 (1938, 1958, 1993, 2011, 2015) |
| Iceland | European playoffs | 13 June 2018 | 19 (1958, 1961, 1964, 1970, 1974, 1978, 1986, 1990, 1993, 1995, 1997, 2001, 2003, 2005, 2007, 2011, 2013, 2015, 2017) |
| Croatia | European playoffs | 14 June 2018 | 12 (1995, 1997, 1999, 2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017) |
| Serbia | European playoffs | 14 June 2018 | 3 ( 2009, 2011, 2013) |
| Brazil | Finalist of 2018 Pan American Championship | 23 June 2018 | 13 (1958, 1995, 1997, 1999, 2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017) |
| Argentina | Finalist of 2018 Pan American Championship | 23 June 2018 | 11 (1997, 1999, 2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017) |
| Chile | Third place of 2018 Pan American Championship | 24 June 2018 | 4 (2011, 2013, 2015, 2017) |
| Korea | Wildcard | 10 October 2018 | 0 (debut) |
    $^1$ Bold indicates champion for that year. Italic indicates host country for that year
    $^2$ The associations of South Korea and North Korea were invited by the International Handball Federation to enter a unified team in the championship. South Korea, which had 11 previous appearances (1986, 1990, 1993, 1995, 1997, 1999, 2001, 2007, 2009, 2011, 2013), originally qualified as the semifinalist of the 2018 Asian Championship.
    $^3$ From both German teams only East Germany was qualified in 1990

## Draw

The draw took place on 25 June 2018 in Copenhagen, Denmark.

### Seeding

The seedings and draw procedure were announced on 22 June 2018.
| Pot 1 | Pot 2 | Pot 3 | Pot 4 | Pot 5 | Pot 6 |
| France Spain Sweden Denmark | Croatia Russia Norway Hungary | Qatar Germany Austria North Macedonia | Serbia Tunisia Iceland Argentina | Brazil Egypt Bahrain Chile | South Korea Saudi Arabia Angola Japan |
    $^3$ Official name since February 2019. During the championships: Former Yugoslavian Republic of Macedonia (FYROM).
    $^4$ Later replaced by a Unified Korea team

## Referees

The referee pairs were selected on 25 October 2018.
Referees :
| Argentina | Julian Grillo Sebastián Lenci |
| Croatia | Matija Gubica Boris Milošević |
| Czech Republic | Václav Horáček Jiří Novotný |
| Denmark | Martin Gjeding Mads Hansen |
| France | Karim Gasmi Raouf Gasmi |
| Germany | Robert Schulze Tobias Tönnies |
| Iran | Majid Kolahdouzan Alireza Mousaviannazhad |
| North Macedonia | Gjorgji Nachevski Slave Nikolov |
Referees :
| Montenegro | Ivan Pavićević Miloš Ražnatović |
| Norway | Håvard Kleven Lars Jørum |
| Portugal | Duarte Santos Ricardo Fonseca |
| Slovenia | Bojan Lah David Sok |
| Spain | Óscar López Ángel Ramírez |
| Sweden | Mirza Kurtagic Mattias Wetterwik |
| Switzerland | Arthur Brunner Morad Salah |
| Tunisia | Ismail Boualloucha Ramzi Khenissi |

## Preliminary round

The provisional schedule was confirmed on 28 June 2018 and the final schedule was announced on 31 October 2018.

### Tiebreakers

In the group stage, teams are ranked according to points (2 points for a win, 1 point for a draw, 0 points for a loss). After completion of the group stage, if two or more teams have scored the same number of points, the ranking will be determined as follows:
* Highest number of points in matches between the teams directly involved;
* Superior goal difference in matches between the teams directly involved;
* Highest number of goals scored in matches between the teams directly involved (or in the away match in case of a two-team tie);
* Superior goal difference in all matches of the group;
* Highest number of plus goals in all matches of the group;
If the ranking of one of these teams is determined, the above criteria are consecutively followed until the ranking of all teams is determined. If no ranking can be determined, a decision shall be obtained by IHF through drawing of lots.
During the group stage, only criteria 4–5 apply to determine the provisional ranking of teams.
All times are local (UTC+1).

### Group A

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | France | 5 | 4 | 1 | 0 | 138 | 113 | +25 | 9 | Main round |
| 2 | Germany (H) | 5 | 3 | 2 | 0 | 142 | 110 | +32 | 8 | Main round |
| 3 | Brazil | 5 | 3 | 0 | 2 | 127 | 129 | −2 | 6 | Main round |
| 4 | Russia | 5 | 1 | 2 | 2 | 131 | 127 | +4 | 4 | |
| 5 | Serbia | 5 | 1 | 1 | 3 | 127 | 146 | −19 | 3 | |
| 6 | Korea | 5 | 0 | 0 | 5 | 124 | 164 | −40 | 0 | |
| 10 January 2019 18:15 | Korea | 19–30 | Germany | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Gjeding, Hansen (DEN) |
| 10 January 2019 18:15 | Jang, Kang T. 4 | (10–17) | Gensheimer 7 | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Gjeding, Hansen (DEN) |
| 10 January 2019 18:15 | 5× 1× | Report | 1× 6× | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Gjeding, Hansen (DEN) |
| 11 January 2019 18:00 | Serbia | 30–30 | Russia | Mercedes-Benz Arena, Berlin Attendance: 10,468 Referees: Jørum, Kleven (NOR) |
| 11 January 2019 18:00 | N. Ilić 6 | (16–16) | Dibirov 12 | Mercedes-Benz Arena, Berlin Attendance: 10,468 Referees: Jørum, Kleven (NOR) |
| 11 January 2019 18:00 | 2× 5× | Report | 1× 4× | Mercedes-Benz Arena, Berlin Attendance: 10,468 Referees: Jørum, Kleven (NOR) |
| 11 January 2019 20:30 | Brazil | 22–24 | France | Mercedes-Benz Arena, Berlin Attendance: 10,529 Referees: Kurtagic, Wetterwik (SWE) |
| 11 January 2019 20:30 | Toledo 8 | (13–16) | Guigou, Mem 6 | Mercedes-Benz Arena, Berlin Attendance: 10,529 Referees: Kurtagic, Wetterwik (SWE) |
| 11 January 2019 20:30 | 3× 5× | Report | 3× 4× | Mercedes-Benz Arena, Berlin Attendance: 10,529 Referees: Kurtagic, Wetterwik (SWE) |
| 12 January 2019 15:30 | Russia | 34–27 | Korea | Mercedes-Benz Arena, Berlin Attendance: 10,039 Referees: Pavićević, Ražnatović (MNE) |
| 12 January 2019 15:30 | Shishkarev 7 | (20–13) | Kang J., Park K. 4 | Mercedes-Benz Arena, Berlin Attendance: 10,039 Referees: Pavićević, Ražnatović (MNE) |
| 12 January 2019 15:30 | 2× 8× 1× | Report | 1× 2× | Mercedes-Benz Arena, Berlin Attendance: 10,039 Referees: Pavićević, Ražnatović (MNE) |
| 12 January 2019 18:15 | Germany | 34–21 | Brazil | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Kleven, Jørum (NOR) |
| 12 January 2019 18:15 | Gensheimer 10 | (15–8) | Toledo 5 | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Kleven, Jørum (NOR) |
| 12 January 2019 18:15 | 2× 4× | Report | 2× 6× 1× | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Kleven, Jørum (NOR) |
| 12 January 2019 20:30 | France | 32–21 | Serbia | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Gjeding, Hansen (DEN) |
| 12 January 2019 20:30 | Fabregas, Remili 5 | (15–12) | Radivojević 6 | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Gjeding, Hansen (DEN) |
| 12 January 2019 20:30 | 2× | Report | 2× 4× | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Gjeding, Hansen (DEN) |
| 14 January 2019 15:30 | Serbia | 22–24 | Brazil | Mercedes-Benz Arena, Berlin Attendance: 10,211 Referees: Gjeding, Hansen (DEN) |
| 14 January 2019 15:30 | Marsenić, Radivojević 5 | (11–14) | Toledo 5 | Mercedes-Benz Arena, Berlin Attendance: 10,211 Referees: Gjeding, Hansen (DEN) |
| 14 January 2019 15:30 | 3× 6× 1× | Report | 2× 3× | Mercedes-Benz Arena, Berlin Attendance: 10,211 Referees: Gjeding, Hansen (DEN) |
| 14 January 2019 18:00 | Russia | 22–22 | Germany | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Kurtagic, Wetterwik (SWE) |
| 14 January 2019 18:00 | Dibirov 8 | (10–12) | Gensheimer 8 | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Kurtagic, Wetterwik (SWE) |
| 14 January 2019 18:00 | 3× 5× | Report | 3× 3× | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Kurtagic, Wetterwik (SWE) |
| 14 January 2019 20:30 | France | 34–23 | Korea | Mercedes-Benz Arena, Berlin Attendance: 10,331 Referees: Pavićević, Ražnatović (MNE) |
| 14 January 2019 20:30 | Remili 7 | (17–16) | Kang T. 7 | Mercedes-Benz Arena, Berlin Attendance: 10,331 Referees: Pavićević, Ražnatović (MNE) |
| 14 January 2019 20:30 | 3× 6× | Report | 2× 3× | Mercedes-Benz Arena, Berlin Attendance: 10,331 Referees: Pavićević, Ražnatović (MNE) |
| 15 January 2019 15:30 | Russia | 23–25 | Brazil | Mercedes-Benz Arena, Berlin Attendance: 9,011 Referees: Pavićević, Ražnatović (MNE) |
| 15 January 2019 15:30 | Dibirov, Zhitnikov 6 | (10–15) | Borges 7 | Mercedes-Benz Arena, Berlin Attendance: 9,011 Referees: Pavićević, Ražnatović (MNE) |
| 15 January 2019 15:30 | 1× 6× 1× | Report | 2× 5× | Mercedes-Benz Arena, Berlin Attendance: 9,011 Referees: Pavićević, Ražnatović (MNE) |
| 15 January 2019 18:00 | Korea | 29–31 | Serbia | Mercedes-Benz Arena, Berlin Attendance: 11,953 Referees: Kurtagic, Wetterwik (SWE) |
| 15 January 2019 18:00 | Kang J. 12 | (16–14) | Vorkapić 7 | Mercedes-Benz Arena, Berlin Attendance: 11,953 Referees: Kurtagic, Wetterwik (SWE) |
| 15 January 2019 18:00 | 1× 3× | Report | 2× 5× 1× | Mercedes-Benz Arena, Berlin Attendance: 11,953 Referees: Kurtagic, Wetterwik (SWE) |
| 15 January 2019 20:30 | Germany | 25–25 | France | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Gjeding, Hansen (DEN) |
| 15 January 2019 20:30 | three players 4 | (12–10) | Mahé 9 | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Gjeding, Hansen (DEN) |
| 15 January 2019 20:30 | 2× 5× | Report | 6× | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Gjeding, Hansen (DEN) |
| 17 January 2019 15:30 | Brazil | 35–26 | Korea | Mercedes-Benz Arena, Berlin Attendance: 8,933 Referees: Jørum, Kleven (NOR) |
| 17 January 2019 15:30 | Borges 6 | (18–10) | Kang J. 5 | Mercedes-Benz Arena, Berlin Attendance: 8,933 Referees: Jørum, Kleven (NOR) |
| 17 January 2019 15:30 | 2× 5× | Report | 1× 2× | Mercedes-Benz Arena, Berlin Attendance: 8,933 Referees: Jørum, Kleven (NOR) |
| 17 January 2019 18:00 | Germany | 31–23 | Serbia | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Pavićević, Ražnatović (MNE) |
| 17 January 2019 18:00 | Musche 5 | (16–12) | N. Ilić 6 | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Pavićević, Ražnatović (MNE) |
| 17 January 2019 18:00 | 1× 3× 1× | Report | 3× 7× | Mercedes-Benz Arena, Berlin Attendance: 13,500 Referees: Pavićević, Ražnatović (MNE) |
| 17 January 2019 20:30 | France | 23–22 | Russia | Mercedes-Benz Arena, Berlin Attendance: 11,287 Referees: Horáček, Novotný (CZE) |
| 17 January 2019 20:30 | Richardson 4 | (12–12) | Shkurinskiy 4 | Mercedes-Benz Arena, Berlin Attendance: 11,287 Referees: Horáček, Novotný (CZE) |
| 17 January 2019 20:30 | 2× | Report | 1× 4× | Mercedes-Benz Arena, Berlin Attendance: 11,287 Referees: Horáček, Novotný (CZE) |

### Group B

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Croatia | 5 | 5 | 0 | 0 | 152 | 115 | +37 | 10 | Main round |
| 2 | Spain | 5 | 4 | 0 | 1 | 142 | 114 | +28 | 8 | Main round |
| 3 | Iceland | 5 | 3 | 0 | 2 | 137 | 124 | +13 | 6 | Main round |
| 4 | North Macedonia | 5 | 2 | 0 | 3 | 131 | 139 | −8 | 4 | |
| 5 | Bahrain | 5 | 1 | 0 | 4 | 107 | 151 | −44 | 2 | |
| 6 | Japan | 5 | 0 | 0 | 5 | 121 | 147 | −26 | 0 | |
| 11 January 2019 15:30 | Japan | 29–38 | North Macedonia | Olympiahalle, Munich Attendance: 7,500 Referees: Horáček, Novotný (CZE) |
| 11 January 2019 15:30 | Watanabe 5 | (13–18) | K. Lazarov 8 | Olympiahalle, Munich Attendance: 7,500 Referees: Horáček, Novotný (CZE) |
| 11 January 2019 15:30 | 3× | Report | 1× 4× | Olympiahalle, Munich Attendance: 7,500 Referees: Horáček, Novotný (CZE) |
| 11 January 2019 18:00 | Iceland | 27–31 | Croatia | Olympiahalle, Munich Attendance: 12,000 Referees: Boualloucha, Khenissi (TUN) |
| 11 January 2019 18:00 | Pálmarsson 7 | (14–16) | Stepančić 8 | Olympiahalle, Munich Attendance: 12,000 Referees: Boualloucha, Khenissi (TUN) |
| 11 January 2019 18:00 | 2× 5× | Report | 3× 2× | Olympiahalle, Munich Attendance: 12,000 Referees: Boualloucha, Khenissi (TUN) |
| 11 January 2019 20:30 | Bahrain | 23–33 | Spain | Olympiahalle, Munich Attendance: 9,800 Referees: Grillo, Lenci (ARG) |
| 11 January 2019 20:30 | Al-Sayyad, Habib 7 | (11–16) | Solé 7 | Olympiahalle, Munich Attendance: 9,800 Referees: Grillo, Lenci (ARG) |
| 11 January 2019 20:30 | 2× 6× | Report | 2× 4× | Olympiahalle, Munich Attendance: 9,800 Referees: Grillo, Lenci (ARG) |
| 13 January 2019 14:00 | North Macedonia | 28–23 | Bahrain | Olympiahalle, Munich Attendance: 8,500 Referees: Boualloucha, Khenissi (TUN) |
| 13 January 2019 14:00 | K. Lazarov 8 | (12–8) | Al-Sayyad 6 | Olympiahalle, Munich Attendance: 8,500 Referees: Boualloucha, Khenissi (TUN) |
| 13 January 2019 14:00 | 1× 3× | Report | 1× 3× | Olympiahalle, Munich Attendance: 8,500 Referees: Boualloucha, Khenissi (TUN) |
| 13 January 2019 16:30 | Croatia | 35–27 | Japan | Olympiahalle, Munich Attendance: 12,000 Referees: Brunner, Salah (SUI) |
| 13 January 2019 16:30 | Horvat 8 | (18–13) | Tokuda 6 | Olympiahalle, Munich Attendance: 12,000 Referees: Brunner, Salah (SUI) |
| 13 January 2019 16:30 | 3× 2× | Report | 3× 2× | Olympiahalle, Munich Attendance: 12,000 Referees: Brunner, Salah (SUI) |
| 13 January 2019 19:00 | Spain | 32–25 | Iceland | Olympiahalle, Munich Attendance: 12,000 Referees: Horáček, Novotný (CZE) |
| 13 January 2019 19:00 | Solé 5 | (19–14) | Guðmundsson 6 | Olympiahalle, Munich Attendance: 12,000 Referees: Horáček, Novotný (CZE) |
| 13 January 2019 19:00 | 1× 3× | Report | 2× 6× | Olympiahalle, Munich Attendance: 12,000 Referees: Horáček, Novotný (CZE) |
| 14 January 2019 15:30 | Iceland | 36–18 | Bahrain | Olympiahalle, Munich Attendance: 6,000 Referees: Brunner, Salah (SUI) |
| 14 January 2019 15:30 | Gunnarsson 8 | (16–10) | Merza 5 | Olympiahalle, Munich Attendance: 6,000 Referees: Brunner, Salah (SUI) |
| 14 January 2019 15:30 | 2× 4× | Report | 2× 5× 2× | Olympiahalle, Munich Attendance: 6,000 Referees: Brunner, Salah (SUI) |
| 14 January 2019 18:00 | Croatia | 31–22 | North Macedonia | Olympiahalle, Munich Attendance: 9,800 Referees: Horáček, Novotný (CZE) |
| 14 January 2019 18:00 | Duvnjak 6 | (16–11) | Manaskov 6 | Olympiahalle, Munich Attendance: 9,800 Referees: Horáček, Novotný (CZE) |
| 14 January 2019 18:00 | 2× 3× | Report | 1× 3× | Olympiahalle, Munich Attendance: 9,800 Referees: Horáček, Novotný (CZE) |
| 14 January 2019 20:30 | Spain | 26–22 | Japan | Olympiahalle, Munich Attendance: 7,300 Referees: Grillo, Lenci (ARG) |
| 14 January 2019 20:30 | Solé 8 | (10–11) | Tokuda 7 | Olympiahalle, Munich Attendance: 7,300 Referees: Grillo, Lenci (ARG) |
| 14 January 2019 20:30 | 3× | Report | 2× 3× | Olympiahalle, Munich Attendance: 7,300 Referees: Grillo, Lenci (ARG) |
| 16 January 2019 15:30 | Japan | 21–25 | Iceland | Olympiahalle, Munich Attendance: 6,000 Referees: Boualloucha, Khenissi (TUN) |
| 16 January 2019 15:30 | Agarie 4 | (12–13) | Gunnarsson, Sigurmannsson 5 | Olympiahalle, Munich Attendance: 6,000 Referees: Boualloucha, Khenissi (TUN) |
| 16 January 2019 15:30 | 1× 1× 1× | Report | 2× 2× | Olympiahalle, Munich Attendance: 6,000 Referees: Boualloucha, Khenissi (TUN) |
| 16 January 2019 18:00 | Croatia | 32–20 | Bahrain | Olympiahalle, Munich Attendance: 8,600 Referees: Grillo, Lenci (ARG) |
| 16 January 2019 18:00 | Štrlek 11 | (19–9) | Jalal 5 | Olympiahalle, Munich Attendance: 8,600 Referees: Grillo, Lenci (ARG) |
| 16 January 2019 18:00 | 3× 7× | Report | 1× 5× | Olympiahalle, Munich Attendance: 8,600 Referees: Grillo, Lenci (ARG) |
| 16 January 2019 20:30 | North Macedonia | 21–32 | Spain | Olympiahalle, Munich Attendance: 9,600 Referees: Brunner, Salah (SUI) |
| 16 January 2019 20:30 | Peševski 6 | (12–13) | Gómez 6 | Olympiahalle, Munich Attendance: 9,600 Referees: Brunner, Salah (SUI) |
| 16 January 2019 20:30 | 1× 4× | Report | 1× 2× | Olympiahalle, Munich Attendance: 9,600 Referees: Brunner, Salah (SUI) |
| 17 January 2019 15:30 | Bahrain | 23–22 | Japan | Olympiahalle, Munich Attendance: 5,200 Referees: Brunner, Salah (SUI) |
| 17 January 2019 15:30 | Basham 6 | (10–9) | Motoki 9 | Olympiahalle, Munich Attendance: 5,200 Referees: Brunner, Salah (SUI) |
| 17 January 2019 15:30 | 4× | Report | 2× 4× | Olympiahalle, Munich Attendance: 5,200 Referees: Brunner, Salah (SUI) |
| 17 January 2019 18:00 | North Macedonia | 22–24 | Iceland | Olympiahalle, Munich Attendance: 10,100 Referees: Kurtagic, Wetterwik (SWE) |
| 17 January 2019 18:00 | K. Lazarov, Manaskov 5 | (13–11) | Gunnarsson 10 | Olympiahalle, Munich Attendance: 10,100 Referees: Kurtagic, Wetterwik (SWE) |
| 17 January 2019 18:00 | 3× 3× | Report | 2× 4× | Olympiahalle, Munich Attendance: 10,100 Referees: Kurtagic, Wetterwik (SWE) |
| 17 January 2019 20:30 | Spain | 19–23 | Croatia | Olympiahalle, Munich Attendance: 12,000 Referees: Gjeding, Hansen (DEN) |
| 17 January 2019 20:30 | Solé 5 | (10–13) | Horvat 8 | Olympiahalle, Munich Attendance: 12,000 Referees: Gjeding, Hansen (DEN) |
| 17 January 2019 20:30 | 1× 1× | Report | 3× 2× | Olympiahalle, Munich Attendance: 12,000 Referees: Gjeding, Hansen (DEN) |

### Group C

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Denmark (H) | 5 | 5 | 0 | 0 | 167 | 103 | +64 | 10 | Main round |
| 2 | Norway | 5 | 4 | 0 | 1 | 175 | 119 | +56 | 8 | Main round |
| 3 | Tunisia | 5 | 3 | 0 | 2 | 138 | 147 | −9 | 6 | Main round |
| 4 | Chile | 5 | 2 | 0 | 3 | 130 | 167 | −37 | 4 | |
| 5 | Austria | 5 | 1 | 0 | 4 | 121 | 148 | −27 | 2 | |
| 6 | Saudi Arabia | 5 | 0 | 0 | 5 | 112 | 159 | −47 | 0 | |
| 10 January 2019 20:15 | Chile | 16–39 | Denmark | Royal Arena, Copenhagen Attendance: 12,500 Referees: Fonseca, Santos (POR) |
| 10 January 2019 20:15 | Salinas 4 | (4–22) | Mortensen 8 | Royal Arena, Copenhagen Attendance: 12,500 Referees: Fonseca, Santos (POR) |
| 10 January 2019 20:15 | 5× | Report | 2× 5× | Royal Arena, Copenhagen Attendance: 12,500 Referees: Fonseca, Santos (POR) |
| 11 January 2019 18:00 | Saudi Arabia | 22–29 | Austria | Jyske Bank Boxen, Herning Attendance: 6,500 Referees: Schulze, Tönnies (GER) |
| 11 January 2019 18:00 | Ma. Al-Salem 7 | (9–15) | Bilyk 7 | Jyske Bank Boxen, Herning Attendance: 6,500 Referees: Schulze, Tönnies (GER) |
| 11 January 2019 18:00 | 2× 6× 1× | Report | 2× 5× | Jyske Bank Boxen, Herning Attendance: 6,500 Referees: Schulze, Tönnies (GER) |
| 11 January 2019 20:30 | Tunisia | 24–34 | Norway | Jyske Bank Boxen, Herning Attendance: 6,500 Referees: Gubica, Milošević (CRO) |
| 11 January 2019 20:30 | Jaballah 5 | (13–18) | Jøndal 9 | Jyske Bank Boxen, Herning Attendance: 6,500 Referees: Gubica, Milošević (CRO) |
| 11 January 2019 20:30 | 2× 5× | Report | 1× 5× | Jyske Bank Boxen, Herning Attendance: 6,500 Referees: Gubica, Milošević (CRO) |
| 12 January 2019 15:00 | Austria | 24–32 | Chile | Jyske Bank Boxen, Herning Attendance: 5,900 Referees: Gasmi, Gasmi (FRA) |
| 12 January 2019 15:00 | Weber 6 | (15–14) | Er. Feuchtmann 9 | Jyske Bank Boxen, Herning Attendance: 5,900 Referees: Gasmi, Gasmi (FRA) |
| 12 January 2019 15:00 | 2× 6× | Report | 1× 5× | Jyske Bank Boxen, Herning Attendance: 5,900 Referees: Gasmi, Gasmi (FRA) |
| 12 January 2019 17:30 | Norway | 40–21 | Saudi Arabia | Jyske Bank Boxen, Herning Attendance: 12,002 Referees: Schulze, Tönnies (GER) |
| 12 January 2019 17:30 | Rød 9 | (20–10) | Ma. Al-Salem 7 | Jyske Bank Boxen, Herning Attendance: 12,002 Referees: Schulze, Tönnies (GER) |
| 12 January 2019 17:30 | 3× 3× | Report | 1× 2× | Jyske Bank Boxen, Herning Attendance: 12,002 Referees: Schulze, Tönnies (GER) |
| 12 January 2019 20:15 | Denmark | 36–22 | Tunisia | Jyske Bank Boxen, Herning Attendance: 15,000 Referees: Lah, Sok (SVN) |
| 12 January 2019 20:15 | M. Hansen, Lauge 7 | (19–10) | Chouiref 5 | Jyske Bank Boxen, Herning Attendance: 15,000 Referees: Lah, Sok (SVN) |
| 12 January 2019 20:15 | 3× 7× | Report | 2× 2× | Jyske Bank Boxen, Herning Attendance: 15,000 Referees: Lah, Sok (SVN) |
| 14 January 2019 15:00 | Tunisia | 36–30 | Chile | Jyske Bank Boxen, Herning Attendance: 3,247 Referees: Gubica, Milošević (CRO) |
| 14 January 2019 15:00 | Chouiref, Soussi 7 | (18–15) | Er. Feuchtmann, Salinas 8 | Jyske Bank Boxen, Herning Attendance: 3,247 Referees: Gubica, Milošević (CRO) |
| 14 January 2019 15:00 | 2× 4× | Report | 2× 5× | Jyske Bank Boxen, Herning Attendance: 3,247 Referees: Gubica, Milošević (CRO) |
| 14 January 2019 17:30 | Norway | 34–24 | Austria | Jyske Bank Boxen, Herning Attendance: 8,716 Referees: Lah, Sok (SVN) |
| 14 January 2019 17:30 | Sagosen 8 | (16–13) | Božović 7 | Jyske Bank Boxen, Herning Attendance: 8,716 Referees: Lah, Sok (SVN) |
| 14 January 2019 17:30 | 2× 1× | Report | 2× 5× | Jyske Bank Boxen, Herning Attendance: 8,716 Referees: Lah, Sok (SVN) |
| 14 January 2019 20:15 | Denmark | 34–22 | Saudi Arabia | Jyske Bank Boxen, Herning Attendance: 12,157 Referees: Gasmi, Gasmi (FRA) |
| 14 January 2019 20:15 | M. Landin 7 | (17–11) | Mo. Al-Salem 4 | Jyske Bank Boxen, Herning Attendance: 12,157 Referees: Gasmi, Gasmi (FRA) |
| 14 January 2019 20:15 | 1× 5× | Report | 1× 7× 1× | Jyske Bank Boxen, Herning Attendance: 12,157 Referees: Gasmi, Gasmi (FRA) |
| 15 January 2019 16:15 | Saudi Arabia | 20–24 | Tunisia | Jyske Bank Boxen, Herning Attendance: 4,571 Referees: Lah, Sok (SVN) |
| 15 January 2019 16:15 | Al-Abdulali 5 | (8–12) | Boughanmi, Sanaï 7 | Jyske Bank Boxen, Herning Attendance: 4,571 Referees: Lah, Sok (SVN) |
| 15 January 2019 16:15 | 1× 4× | Report | 1× 3× 1× | Jyske Bank Boxen, Herning Attendance: 4,571 Referees: Lah, Sok (SVN) |
| 15 January 2019 18:30 | Norway | 41–20 | Chile | Jyske Bank Boxen, Herning Attendance: 11,247 Referees: Gasmi, Gasmi (FRA) |
| 15 January 2019 18:30 | Blonz 8 | (21–12) | Salinas 9 | Jyske Bank Boxen, Herning Attendance: 11,247 Referees: Gasmi, Gasmi (FRA) |
| 15 January 2019 18:30 | 2× 1× | Report | 1× 2× | Jyske Bank Boxen, Herning Attendance: 11,247 Referees: Gasmi, Gasmi (FRA) |
| 15 January 2019 20:45 | Austria | 17–28 | Denmark | Jyske Bank Boxen, Herning Attendance: 14,607 Referees: Schulze, Tönnies (GER) |
| 15 January 2019 20:45 | three players 3 | (8–11) | M. Landin, Lauge 6 | Jyske Bank Boxen, Herning Attendance: 14,607 Referees: Schulze, Tönnies (GER) |
| 15 January 2019 20:45 | 1× 2× | Report | 2× | Jyske Bank Boxen, Herning Attendance: 14,607 Referees: Schulze, Tönnies (GER) |
| 17 January 2019 15:00 | Chile | 32–27 | Saudi Arabia | Jyske Bank Boxen, Herning Attendance: 3,526 Referees: Gubica, Milošević (CRO) |
| 17 January 2019 15:00 | Er. Feuchtmann 11 | (21–13) | Mo. Al-Salem 8 | Jyske Bank Boxen, Herning Attendance: 3,526 Referees: Gubica, Milošević (CRO) |
| 17 January 2019 15:00 | 1× 5× | Report | 1× 9× 2× | Jyske Bank Boxen, Herning Attendance: 3,526 Referees: Gubica, Milošević (CRO) |
| 17 January 2019 17:30 | Austria | 27–32 | Tunisia | Jyske Bank Boxen, Herning Attendance: 11,834 Referees: Santos, Fonseca (POR) |
| 17 January 2019 17:30 | Weber 9 | (14–18) | Boughanmi 9 | Jyske Bank Boxen, Herning Attendance: 11,834 Referees: Santos, Fonseca (POR) |
| 17 January 2019 17:30 | 2× 6× | Report | 2× 5× | Jyske Bank Boxen, Herning Attendance: 11,834 Referees: Santos, Fonseca (POR) |
| 17 January 2019 20:15 | Denmark | 30–26 | Norway | Jyske Bank Boxen, Herning Attendance: 15,001 Referees: Nachevski, Nikolov (MKD) |
| 17 January 2019 20:15 | M. Hansen 14 | (17–14) | Johannessen 5 | Jyske Bank Boxen, Herning Attendance: 15,001 Referees: Nachevski, Nikolov (MKD) |
| 17 January 2019 20:15 | 2× 4× | Report | 3× 4× | Jyske Bank Boxen, Herning Attendance: 15,001 Referees: Nachevski, Nikolov (MKD) |

### Group D

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Sweden | 5 | 5 | 0 | 0 | 151 | 111 | +40 | 10 | Main round |
| 2 | Hungary | 5 | 2 | 2 | 1 | 151 | 138 | +13 | 6 | Main round |
| 3 | Egypt | 5 | 2 | 1 | 2 | 132 | 133 | −1 | 5 | Main round |
| 4 | Qatar | 5 | 2 | 0 | 3 | 125 | 127 | −2 | 4 | |
| 5 | Argentina | 5 | 1 | 1 | 3 | 119 | 130 | −11 | 3 | |
| 6 | Angola | 5 | 1 | 0 | 4 | 121 | 160 | −39 | 2 | |
| 11 January 2019 15:30 | Angola | 24–23 | Qatar | Royal Arena, Copenhagen Attendance: 1,870 Referees: Fonseca, Santos (POR) |
| 11 January 2019 15:30 | Hebo 7 | (12–8) | Berrached 6 | Royal Arena, Copenhagen Attendance: 1,870 Referees: Fonseca, Santos (POR) |
| 11 January 2019 15:30 | 2× 6× | Report | 2× 4× | Royal Arena, Copenhagen Attendance: 1,870 Referees: Fonseca, Santos (POR) |
| 11 January 2019 18:00 | Argentina | 25–25 | Hungary | Royal Arena, Copenhagen Attendance: 4,272 Referees: López, Ramírez (ESP) |
| 11 January 2019 18:00 | Simonet 6 | (10–13) | Balogh 11 | Royal Arena, Copenhagen Attendance: 4,272 Referees: López, Ramírez (ESP) |
| 11 January 2019 18:00 | 3× 4× | Report | 2× 3× | Royal Arena, Copenhagen Attendance: 4,272 Referees: López, Ramírez (ESP) |
| 11 January 2019 20:30 | Egypt | 24–27 | Sweden | Royal Arena, Copenhagen Attendance: 6,448 Referees: Nachevski, Nikolov (MKD) |
| 11 January 2019 20:30 | El-Ahmar, Shebib 5 | (11–13) | Gottfridsson, L. Nilsson 5 | Royal Arena, Copenhagen Attendance: 6,448 Referees: Nachevski, Nikolov (MKD) |
| 11 January 2019 20:30 | 3× 1× | Report | 2× 4× | Royal Arena, Copenhagen Attendance: 6,448 Referees: Nachevski, Nikolov (MKD) |
| 13 January 2019 15:30 | Qatar | 28–23 | Egypt | Royal Arena, Copenhagen Attendance: 3,077 Referees: López, Ramírez (ESP) |
| 13 January 2019 15:30 | Benali 9 | (15–12) | El-Ahmar 6 | Royal Arena, Copenhagen Attendance: 3,077 Referees: López, Ramírez (ESP) |
| 13 January 2019 15:30 | 3× 6× | Report | 2× 3× | Royal Arena, Copenhagen Attendance: 3,077 Referees: López, Ramírez (ESP) |
| 13 January 2019 18:00 | Hungary | 34–24 | Angola | Royal Arena, Copenhagen Attendance: 4,891 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 13 January 2019 18:00 | Bóka 5 | (18–8) | Ferreira 5 | Royal Arena, Copenhagen Attendance: 4,891 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 13 January 2019 18:00 | 2× 3× 1× | Report | 3× | Royal Arena, Copenhagen Attendance: 4,891 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 13 January 2019 20:30 | Sweden | 31–16 | Argentina | Royal Arena, Copenhagen Attendance: 6,492 Referees: Fonseca, Santos (POR) |
| 13 January 2019 20:30 | Zachrisson 6 | (15–10) | F. Fernández 6 | Royal Arena, Copenhagen Attendance: 6,492 Referees: Fonseca, Santos (POR) |
| 13 January 2019 20:30 | 1× 8× | Report | 2× 6× | Royal Arena, Copenhagen Attendance: 6,492 Referees: Fonseca, Santos (POR) |
| 14 January 2019 15:30 | Hungary | 32–26 | Qatar | Royal Arena, Copenhagen Attendance: 1,694 Referees: Nachevski, Nikolov (MKD) |
| 14 January 2019 15:30 | Lékai 5 | (16–11) | Frankis, Sinen 5 | Royal Arena, Copenhagen Attendance: 1,694 Referees: Nachevski, Nikolov (MKD) |
| 14 January 2019 15:30 | 2× 8× | Report | 1× 5× 1× | Royal Arena, Copenhagen Attendance: 1,694 Referees: Nachevski, Nikolov (MKD) |
| 14 January 2019 18:00 | Argentina | 20–22 | Egypt | Royal Arena, Copenhagen Attendance: 2,607 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 14 January 2019 18:00 | F. Fernández 5 | (9–8) | Sanad 7 | Royal Arena, Copenhagen Attendance: 2,607 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 14 January 2019 18:00 | 4× 7× 1× | Report | 2× 5× 1× | Royal Arena, Copenhagen Attendance: 2,607 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 14 January 2019 20:30 | Sweden | 37–19 | Angola | Royal Arena, Copenhagen Attendance: 3,731 Referees: López, Ramírez (ESP) |
| 14 January 2019 20:30 | Ekberg, Zachrisson 5 | (19–14) | Hebo 5 | Royal Arena, Copenhagen Attendance: 3,731 Referees: López, Ramírez (ESP) |
| 14 January 2019 20:30 | 1× 2× | Report | 2× 4× 1× | Royal Arena, Copenhagen Attendance: 3,731 Referees: López, Ramírez (ESP) |
| 16 January 2019 15:30 | Angola | 26–33 | Argentina | Royal Arena, Copenhagen Attendance: 1,709 Referees: Nachevski, Nikolov (MKD) |
| 16 January 2019 15:30 | Ferreira 7 | (12–17) | Simonet 7 | Royal Arena, Copenhagen Attendance: 1,709 Referees: Nachevski, Nikolov (MKD) |
| 16 January 2019 15:30 | 3× 5× | Report | 2× 1× | Royal Arena, Copenhagen Attendance: 1,709 Referees: Nachevski, Nikolov (MKD) |
| 16 January 2019 18:00 | Hungary | 30–30 | Egypt | Royal Arena, Copenhagen Attendance: 3,929 Referees: Fonseca, Santos (POR) |
| 16 January 2019 18:00 | Lékai 6 | (14–14) | Zein 7 | Royal Arena, Copenhagen Attendance: 3,929 Referees: Fonseca, Santos (POR) |
| 16 January 2019 18:00 | 4× | Report | 5× | Royal Arena, Copenhagen Attendance: 3,929 Referees: Fonseca, Santos (POR) |
| 16 January 2019 20:30 | Qatar | 22–23 | Sweden | Royal Arena, Copenhagen Attendance: 6,079 Referees: Schulze, Tönnies (GER) |
| 16 January 2019 20:30 | Benali 8 | (11–10) | L. Nilsson, Zachrisson 7 | Royal Arena, Copenhagen Attendance: 6,079 Referees: Schulze, Tönnies (GER) |
| 16 January 2019 20:30 | 3× 4× | Report | 2× 3× 1× | Royal Arena, Copenhagen Attendance: 6,079 Referees: Schulze, Tönnies (GER) |
| 17 January 2019 15:30 | Egypt | 33–28 | Angola | Royal Arena, Copenhagen Attendance: 2,247 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 17 January 2019 15:30 | El-Deraa 8 | (19–12) | Sibo 7 | Royal Arena, Copenhagen Attendance: 2,247 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 17 January 2019 15:30 | 2× 3× | Report | 1× 4× 1× | Royal Arena, Copenhagen Attendance: 2,247 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 17 January 2019 18:00 | Qatar | 26–25 | Argentina | Royal Arena, Copenhagen Attendance: 4,448 Referees: Lah, Sok (SVN) |
| 17 January 2019 18:00 | Frankis 8 | (16–13) | Baronetto, Simonet 4 | Royal Arena, Copenhagen Attendance: 4,448 Referees: Lah, Sok (SVN) |
| 17 January 2019 18:00 | 1× 3× | Report | 1× 4× | Royal Arena, Copenhagen Attendance: 4,448 Referees: Lah, Sok (SVN) |
| 17 January 2019 20:30 | Sweden | 33–30 | Hungary | Royal Arena, Copenhagen Attendance: 7,803 Referees: López, Ramírez (ESP) |
| 17 January 2019 20:30 | L. Nilsson 7 | (16–15) | Lékai 8 | Royal Arena, Copenhagen Attendance: 7,803 Referees: López, Ramírez (ESP) |
| 17 January 2019 20:30 | 3× 2× | Report | 2× 5× | Royal Arena, Copenhagen Attendance: 7,803 Referees: López, Ramírez (ESP) |

## Presidents Cup
### 21st–24th place playoffs

| 21st–24th place semifinals | 21st–24th place semifinals | 21st place | 21st place |
| 19 January | 19 January |
| Korea | 27 |
| Korea | 27 | 20 January | 20 January |
| Japan | 25 | 20 January | 20 January |
| Japan | 25 | Korea | 26 |
| 19 January | 19 January | | Korea | 26 |
| 19 January | 19 January | Saudi Arabia | 27 |
| Saudi Arabia | 34 | Saudi Arabia | 27 |
| Angola | 29 | | |
| Angola | 29 | 23rd place | 23rd place |
| | | 20 January | 20 January |
| | | Japan | 29 |
| | | Angola | 32 |

#### 21st–24th place semifinals

| 19 January 2019 13:00 | Korea | 27–25 | Japan | Royal Arena, Copenhagen Attendance: 4,446 Referees: Gubica, Milošević (CRO) |
| 19 January 2019 13:00 | Kang J. 7 | (12–14) | Doi 10 | Royal Arena, Copenhagen Attendance: 4,446 Referees: Gubica, Milošević (CRO) |
| 19 January 2019 13:00 | 1× 1× | Report | 2× 7× | Royal Arena, Copenhagen Attendance: 4,446 Referees: Gubica, Milošević (CRO) |
| 19 January 2019 15:30 | Saudi Arabia | 34–29 | Angola | Royal Arena, Copenhagen Attendance: 6,233 Referees: Grillo, Lenci (ARG) |
| 19 January 2019 15:30 | A. Al-Abbas 9 | (20–14) | Ferreira 8 | Royal Arena, Copenhagen Attendance: 6,233 Referees: Grillo, Lenci (ARG) |
| 19 January 2019 15:30 | 2× 4× | Report | 3× | Royal Arena, Copenhagen Attendance: 6,233 Referees: Grillo, Lenci (ARG) |

#### 23rd place game

| 20 January 2019 13:00 | Japan | 29–32 | Angola | Royal Arena, Copenhagen Attendance: 2,952 Referees: Gasmi, Gasmi (FRA) |
| 20 January 2019 13:00 | Doi, Watanabe 5 | (14–15) | Sibo 8 | Royal Arena, Copenhagen Attendance: 2,952 Referees: Gasmi, Gasmi (FRA) |
| 20 January 2019 13:00 | 2× 4× | Report | 2× 5× | Royal Arena, Copenhagen Attendance: 2,952 Referees: Gasmi, Gasmi (FRA) |

#### 21st place game

| 20 January 2019 15:30 | Korea | 26–27 | Saudi Arabia | Royal Arena, Copenhagen Attendance: 3,523 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 20 January 2019 15:30 | Kang J. 4 | (14–13) | Mo. Al-Salem 7 | Royal Arena, Copenhagen Attendance: 3,523 Referees: Kolahdouzan, Mousaviannazhad (IRN) |
| 20 January 2019 15:30 | 3× | Report | 3× 7× | Royal Arena, Copenhagen Attendance: 3,523 Referees: Kolahdouzan, Mousaviannazhad (IRN) |

### 17th–20th place playoffs

| 17th–20th place semifinals | 17th–20th place semifinals | 17th place | 17th place |
| 19 January | 19 January |
| Serbia | 32 |
| Serbia | 32 | 20 January | 20 January |
| Bahrain | 27 | 20 January | 20 January |
| Bahrain | 27 | Serbia | 28 |
| 19 January | 19 January | | Serbia | 28 |
| 19 January | 19 January | Argentina | 30 |
| Austria | 22 | Argentina | 30 |
| Argentina | 24 | | |
| Argentina | 24 | 19th place | 19th place |
| | | 20 January | 20 January |
| | | Bahrain | 27 |
| | | Austria | 29 |

#### 17th–20th place semifinals

| 19 January 2019 18:00 | Serbia | 32–27 | Bahrain | Royal Arena, Copenhagen Attendance: 7,225 Referees: Gasmi, Gasmi (FRA) |
| 19 January 2019 18:00 | V. Ilić 9 | (15–17) | Al-Sayyad 9 | Royal Arena, Copenhagen Attendance: 7,225 Referees: Gasmi, Gasmi (FRA) |
| 19 January 2019 18:00 | 1× 6× | Report | 2× 7× 2× | Royal Arena, Copenhagen Attendance: 7,225 Referees: Gasmi, Gasmi (FRA) |
| 19 January 2019 20:30 | Austria | 22–24 | Argentina | Royal Arena, Copenhagen Attendance: 1,013 Referees: Boualloucha, Khenissi (TUN) |
| 19 January 2019 20:30 | Frimmel 8 | (12–12) | F. Fernández 6 | Royal Arena, Copenhagen Attendance: 1,013 Referees: Boualloucha, Khenissi (TUN) |
| 19 January 2019 20:30 | 2× 5× | Report | 2× 2× | Royal Arena, Copenhagen Attendance: 1,013 Referees: Boualloucha, Khenissi (TUN) |

#### 19th place game

| 20 January 2019 18:00 | Bahrain | 27–29 | Austria | Royal Arena, Copenhagen Attendance: 3,624 Referees: Lah, Sok (SVN) |
| 20 January 2019 18:00 | Al-Salatna 6 | (17–17) | Weber 9 | Royal Arena, Copenhagen Attendance: 3,624 Referees: Lah, Sok (SVN) |
| 20 January 2019 18:00 | 5× | Report | 1× 6× | Royal Arena, Copenhagen Attendance: 3,624 Referees: Lah, Sok (SVN) |

#### 17th place game

| 20 January 2019 20:30 | Serbia | 28–30 | Argentina | Royal Arena, Copenhagen Attendance: 1,421 Referees: Gubica, Milošević (CRO) |
| 20 January 2019 20:30 | Kukić 7 | (15–13) | F. Fernández 10 | Royal Arena, Copenhagen Attendance: 1,421 Referees: Gubica, Milošević (CRO) |
| 20 January 2019 20:30 | 2× 7× | Report | 2× 6× | Royal Arena, Copenhagen Attendance: 1,421 Referees: Gubica, Milošević (CRO) |

### 13th–16th place playoffs

| 13th–16th place semifinals | 13th–16th place semifinals | 13th place | 13th place |
| 19 January | 19 January |
| Russia | 30 |
| Russia | 30 | 20 January | 20 January |
| North Macedonia | 28 | 20 January | 20 January |
| North Macedonia | 28 | Russia | 28 |
| 19 January | 19 January | | Russia | 28 |
| 19 January | 19 January | Qatar | 34 |
| Chile | 27 | Qatar | 34 |
| Qatar | 37 | | |
| Qatar | 37 | 15th place | 15th place |
| | | 20 January | 20 January |
| | | North Macedonia | 32 |
| | | Chile | 30 |

#### 13th–16th place semifinals

| 19 January 2019 13:00 | Russia | 30–28 | North Macedonia | Lanxess Arena, Cologne Attendance: 10,949 Referees: Gjeding, Hansen (DEN) |
| 19 January 2019 13:00 | Zhitnikov 8 | (17–14) | K. Lazarov 9 | Lanxess Arena, Cologne Attendance: 10,949 Referees: Gjeding, Hansen (DEN) |
| 19 January 2019 13:00 | 2× | Report | | Lanxess Arena, Cologne Attendance: 10,949 Referees: Gjeding, Hansen (DEN) |
| 19 January 2019 15:30 | Chile | 27–37 | Qatar | Lanxess Arena, Cologne Attendance: 13,267 Referees: Pavićević, Ražnatović (MNE) |
| 19 January 2019 15:30 | Er. Feuchtmann 7 | (11–21) | Benali 8 | Lanxess Arena, Cologne Attendance: 13,267 Referees: Pavićević, Ražnatović (MNE) |
| 19 January 2019 15:30 | 3× 1× | Report | 1× 3× | Lanxess Arena, Cologne Attendance: 13,267 Referees: Pavićević, Ražnatović (MNE) |

#### 15th place game

| 20 January 2019 13:00 | North Macedonia | 32–30 | Chile | Lanxess Arena, Cologne Attendance: 9,473 Referees: Brunner (SUI), Ražnatović (MNE) |
| 20 January 2019 13:00 | K. Lazarov 9 | (16–16) | Er. Feuchtmann 9 | Lanxess Arena, Cologne Attendance: 9,473 Referees: Brunner (SUI), Ražnatović (MNE) |
| 20 January 2019 13:00 | 1× 4× | Report | 3× 5× | Lanxess Arena, Cologne Attendance: 9,473 Referees: Brunner (SUI), Ražnatović (MNE) |

#### 13th place game

| 20 January 2019 15:30 | Russia | 28–34 | Qatar | Lanxess Arena, Cologne Attendance: 12,781 Referees: Salah (SUI), Pavićević (MNE) |
| 20 January 2019 15:30 | Kovalyov 9 | (14–17) | Benali, Frankis 8 | Lanxess Arena, Cologne Attendance: 12,781 Referees: Salah (SUI), Pavićević (MNE) |
| 20 January 2019 15:30 | 2× 7× 1× | Report | 1× 6× 1× | Lanxess Arena, Cologne Attendance: 12,781 Referees: Salah (SUI), Pavićević (MNE) |

## Main round

Points obtained against qualified teams from the same group were carried over.

### Group I

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Germany (H) | 5 | 4 | 1 | 0 | 136 | 116 | +20 | 9 | Semifinals |
| 2 | France | 5 | 3 | 1 | 1 | 133 | 122 | +11 | 7 | Semifinals |
| 3 | Croatia | 5 | 3 | 0 | 2 | 124 | 117 | +7 | 6 | Fifth place game |
| 4 | Spain | 5 | 2 | 0 | 3 | 147 | 136 | +11 | 4 | Seventh place game |
| 5 | Brazil | 5 | 2 | 0 | 3 | 128 | 149 | −21 | 4 | |
| 6 | Iceland | 5 | 0 | 0 | 5 | 122 | 150 | −28 | 0 | |
* 1 2 Spain 36–24 Brazil
| 19 January 2019 18:00 | France | 33–30 | Spain | Lanxess Arena, Cologne Attendance: 18,121 Referees: Jørum, Kleven (NOR) |
| 19 January 2019 18:00 | Fabregas, Mem 6 | (17–15) | Solé 11 | Lanxess Arena, Cologne Attendance: 18,121 Referees: Jørum, Kleven (NOR) |
| 19 January 2019 18:00 | 1× 4× | Report | 3× 4× | Lanxess Arena, Cologne Attendance: 18,121 Referees: Jørum, Kleven (NOR) |
| 19 January 2019 20:30 | Germany | 24–19 | Iceland | Lanxess Arena, Cologne Attendance: 19,250 Referees: Horáček, Novotný (CZE) |
| 19 January 2019 20:30 | Fäth 6 | (14–10) | Gunnarsson 6 | Lanxess Arena, Cologne Attendance: 19,250 Referees: Horáček, Novotný (CZE) |
| 19 January 2019 20:30 | 1× 3× | Report | 1× 6× | Lanxess Arena, Cologne Attendance: 19,250 Referees: Horáček, Novotný (CZE) |
| 20 January 2019 18:00 | Brazil | 29–26 | Croatia | Lanxess Arena, Cologne Attendance: 15,227 Referees: Jørum, Kleven (NOR) |
| 20 January 2019 18:00 | Langaro 9 | (17–13) | Duvnjak 6 | Lanxess Arena, Cologne Attendance: 15,227 Referees: Jørum, Kleven (NOR) |
| 20 January 2019 18:00 | 2× 4× | Report | 1× 2× | Lanxess Arena, Cologne Attendance: 15,227 Referees: Jørum, Kleven (NOR) |
| 20 January 2019 20:30 | Iceland | 22–31 | France | Lanxess Arena, Cologne Attendance: 18,587 Referees: Kurtagic, Wetterwik (SWE) |
| 20 January 2019 20:30 | Jónsson 5 | (11–15) | Porte, Richardson 5 | Lanxess Arena, Cologne Attendance: 18,587 Referees: Kurtagic, Wetterwik (SWE) |
| 20 January 2019 20:30 | 1× 2× | Report | 1× 5× | Lanxess Arena, Cologne Attendance: 18,587 Referees: Kurtagic, Wetterwik (SWE) |
| 21 January 2019 18:00 | Spain | 36–24 | Brazil | Lanxess Arena, Cologne Attendance: 17,209 Referees: Pavićević, Ražnatović (MNE) |
| 21 January 2019 18:00 | Ariño, Solé 6 | (19–13) | Langaro, Nantes 4 | Lanxess Arena, Cologne Attendance: 17,209 Referees: Pavićević, Ražnatović (MNE) |
| 21 January 2019 18:00 | 1× 3× | Report | 2× 2× | Lanxess Arena, Cologne Attendance: 17,209 Referees: Pavićević, Ražnatović (MNE) |
| 21 January 2019 20:30 | Croatia | 21–22 | Germany | Lanxess Arena, Cologne Attendance: 19,250 Referees: Gjeding, Hansen (DEN) |
| 21 January 2019 20:30 | Karačić, Štrlek 4 | (11–11) | Wiede 6 | Lanxess Arena, Cologne Attendance: 19,250 Referees: Gjeding, Hansen (DEN) |
| 21 January 2019 20:30 | 2× 4× | Report | 2× 5× | Lanxess Arena, Cologne Attendance: 19,250 Referees: Gjeding, Hansen (DEN) |
| 23 January 2019 15:30 | Brazil | 32–29 | Iceland | Lanxess Arena, Cologne Attendance: 11,027 Referees: Jørum, Kleven (NOR) |
| 23 January 2019 15:30 | Langaro 9 | (15–15) | Jónsson 7 | Lanxess Arena, Cologne Attendance: 11,027 Referees: Jørum, Kleven (NOR) |
| 23 January 2019 15:30 | 1× 3× | Report | 1× 2× | Lanxess Arena, Cologne Attendance: 11,027 Referees: Jørum, Kleven (NOR) |
| 23 January 2019 18:00 | France | 20–23 | Croatia | Lanxess Arena, Cologne Attendance: 17,191 Referees: Horáček, Novotný (CZE) |
| 23 January 2019 18:00 | Richardson 5 | (11–11) | Horvat 7 | Lanxess Arena, Cologne Attendance: 17,191 Referees: Horáček, Novotný (CZE) |
| 23 January 2019 18:00 | 1× | Report | 1× 2× | Lanxess Arena, Cologne Attendance: 17,191 Referees: Horáček, Novotný (CZE) |
| 23 January 2019 20:30 | Germany | 31–30 | Spain | Lanxess Arena, Cologne Attendance: 19,250 Referees: Kurtagic, Wetterwik (SWE) |
| 23 January 2019 20:30 | Böhm 5 | (17–16) | Solé 8 | Lanxess Arena, Cologne Attendance: 19,250 Referees: Kurtagic, Wetterwik (SWE) |
| 23 January 2019 20:30 | 2× 3× | Report | 1× 3× | Lanxess Arena, Cologne Attendance: 19,250 Referees: Kurtagic, Wetterwik (SWE) |

### Group II

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification |
| 1 | Denmark (H) | 5 | 5 | 0 | 0 | 147 | 116 | +31 | 10 | Semifinals |
| 2 | Norway | 5 | 4 | 0 | 1 | 157 | 135 | +22 | 8 | Semifinals |
| 3 | Sweden | 5 | 3 | 0 | 2 | 148 | 137 | +11 | 6 | Fifth place game |
| 4 | Egypt | 5 | 1 | 1 | 3 | 132 | 138 | −6 | 3 | Seventh place game |
| 5 | Hungary | 5 | 1 | 1 | 3 | 134 | 144 | −10 | 3 | |
| 6 | Tunisia | 5 | 0 | 0 | 5 | 113 | 161 | −48 | 0 | |
* 1 2 Hungary 30–30 Egypt
| 19 January 2019 18:00 | Tunisia | 23–35 | Sweden | Jyske Bank Boxen, Herning Attendance: 14,153 Referees: Nachevski, Nikolov (MKD) |
| 19 January 2019 18:00 | Sanaï 6 | (14–19) | Ekberg, A. Nilsson 7 | Jyske Bank Boxen, Herning Attendance: 14,153 Referees: Nachevski, Nikolov (MKD) |
| 19 January 2019 18:00 | 2× 2× | Report | 1× 3× | Jyske Bank Boxen, Herning Attendance: 14,153 Referees: Nachevski, Nikolov (MKD) |
| 19 January 2019 20:30 | Denmark | 25–22 | Hungary | Jyske Bank Boxen, Herning Attendance: 15,001 Referees: Schulze, Tönnies (GER) |
| 19 January 2019 20:30 | M. Hansen 7 | (15–10) | Szita 5 | Jyske Bank Boxen, Herning Attendance: 15,001 Referees: Schulze, Tönnies (GER) |
| 19 January 2019 20:30 | 1× 6× | Report | 2× 4× | Jyske Bank Boxen, Herning Attendance: 15,001 Referees: Schulze, Tönnies (GER) |
| 20 January 2019 18:00 | Hungary | 26–21 | Tunisia | Jyske Bank Boxen, Herning Attendance: 2,605 Referees: Santos, Fonseca (POR) |
| 20 January 2019 18:00 | Balogh 9 | (16–14) | Boughanmi, Sanaï 5 | Jyske Bank Boxen, Herning Attendance: 2,605 Referees: Santos, Fonseca (POR) |
| 20 January 2019 18:00 | 1× 6× | Report | 3× 6× | Jyske Bank Boxen, Herning Attendance: 2,605 Referees: Santos, Fonseca (POR) |
| 20 January 2019 20:30 | Norway | 32–28 | Egypt | Jyske Bank Boxen, Herning Attendance: 3,643 Referees: López, Ramírez (ESP) |
| 20 January 2019 20:30 | Rød, Sagosen 10 | (16–14) | El-Ahmar, Sanad 4 | Jyske Bank Boxen, Herning Attendance: 3,643 Referees: López, Ramírez (ESP) |
| 20 January 2019 20:30 | 1× 4× | Report | 1× 5× 1× | Jyske Bank Boxen, Herning Attendance: 3,643 Referees: López, Ramírez (ESP) |
| 21 January 2019 18:00 | Sweden | 27–30 | Norway | Jyske Bank Boxen, Herning Attendance: 11,600 Referees: Santos, Fonseca (POR) |
| 21 January 2019 18:00 | A. Nilsson, Wanne 5 | (14–17) | Jøndal 11 | Jyske Bank Boxen, Herning Attendance: 11,600 Referees: Santos, Fonseca (POR) |
| 21 January 2019 18:00 | 2× 5× | Report | 3× 6× 1× | Jyske Bank Boxen, Herning Attendance: 11,600 Referees: Santos, Fonseca (POR) |
| 21 January 2019 20:30 | Egypt | 20–26 | Denmark | Jyske Bank Boxen, Herning Attendance: 13,237 Referees: Gubica, Milošević (CRO) |
| 21 January 2019 20:30 | Zein 6 | (7–9) | M. Hansen, Zachariassen 5 | Jyske Bank Boxen, Herning Attendance: 13,237 Referees: Gubica, Milošević (CRO) |
| 21 January 2019 20:30 | 3× 4× | Report | 2× 5× | Jyske Bank Boxen, Herning Attendance: 13,237 Referees: Gubica, Milošević (CRO) |
| 23 January 2019 15:30 | Tunisia | 23–30 | Egypt | Jyske Bank Boxen, Herning Attendance: 4,924 Referees: Nachevski, Nikolov (MKD) |
| 23 January 2019 15:30 | Boughanmi 6 | (10–15) | Omar 7 | Jyske Bank Boxen, Herning Attendance: 4,924 Referees: Nachevski, Nikolov (MKD) |
| 23 January 2019 15:30 | 3× 3× | Report | 1× 3× | Jyske Bank Boxen, Herning Attendance: 4,924 Referees: Nachevski, Nikolov (MKD) |
| 23 January 2019 18:00 | Norway | 35–26 | Hungary | Jyske Bank Boxen, Herning Attendance: 13,815 Referees: Schulze, Tönnies (GER) |
| 23 January 2019 18:00 | Jøndal, Rød 7 | (16–13) | Balogh 11 | Jyske Bank Boxen, Herning Attendance: 13,815 Referees: Schulze, Tönnies (GER) |
| 23 January 2019 18:00 | 1× 4× | Report | 1× 4× | Jyske Bank Boxen, Herning Attendance: 13,815 Referees: Schulze, Tönnies (GER) |
| 23 January 2019 20:30 | Denmark | 30–26 | Sweden | Jyske Bank Boxen, Herning Attendance: 15,002 Referees: López, Ramírez (ESP) |
| 23 January 2019 20:30 | M. Hansen 6 | (13–13) | Tollbring 8 | Jyske Bank Boxen, Herning Attendance: 15,002 Referees: López, Ramírez (ESP) |
| 23 January 2019 20:30 | 2× 4× | Report | 1× 4× | Jyske Bank Boxen, Herning Attendance: 15,002 Referees: López, Ramírez (ESP) |

## Final round
### Bracket

| Semifinals | Semifinals | Final | Final |
| 25 January | 25 January |
| Germany | 25 |
| Germany | 25 | 27 January | 27 January |
| Norway | 31 | 27 January | 27 January |
| Norway | 31 | Norway | 22 |
| 25 January | 25 January | | Norway | 22 |
| 25 January | 25 January | Denmark | 31 |
| Denmark | 38 | Denmark | 31 |
| France | 30 | | |
| France | 30 | Third place | Third place |
| | | 27 January | 27 January |
| | | Germany | 25 |
| | | France | 26 |

### Semifinals

| 25 January 2019 17:30 | Denmark | 38–30 | France | Barclaycard Arena, Hamburg Attendance: 12,500 Referees: Gubica, Milošević (CRO) |
| 25 January 2019 17:30 | M. Hansen 12 | (21–15) | Mahé 8 | Barclaycard Arena, Hamburg Attendance: 12,500 Referees: Gubica, Milošević (CRO) |
| 25 January 2019 17:30 | 3× | Report | 2× 4× | Barclaycard Arena, Hamburg Attendance: 12,500 Referees: Gubica, Milošević (CRO) |
| 25 January 2019 20:30 | Germany | 25–31 | Norway | Barclaycard Arena, Hamburg Attendance: 12,500 Referees: Horáček, Novotný (CZE) |
| 25 January 2019 20:30 | Gensheimer 7 | (12–14) | Rød 7 | Barclaycard Arena, Hamburg Attendance: 12,500 Referees: Horáček, Novotný (CZE) |
| 25 January 2019 20:30 | 2× 7× 1× | Report | 2× 3× | Barclaycard Arena, Hamburg Attendance: 12,500 Referees: Horáček, Novotný (CZE) |

### Seventh place game

| 26 January 2019 17:30 | Spain | 36–31 | Egypt | Jyske Bank Boxen, Herning Attendance: 5,318 Referees: Gjeding, Hansen (DEN) |
| 26 January 2019 17:30 | Cañellas 9 | (17–18) | El-Ahmar 7 | Jyske Bank Boxen, Herning Attendance: 5,318 Referees: Gjeding, Hansen (DEN) |
| 26 January 2019 17:30 | 1× 3× | Report | 1× 3× 1× | Jyske Bank Boxen, Herning Attendance: 5,318 Referees: Gjeding, Hansen (DEN) |

### Fifth place game

| 26 January 2019 20:30 | Croatia | 28–34 | Sweden | Jyske Bank Boxen, Herning Attendance: 6,075 Referees: Schulze, Tönnies (GER) |
| 26 January 2019 20:30 | Stepančić 5 | (13–16) | Ekberg 6 | Jyske Bank Boxen, Herning Attendance: 6,075 Referees: Schulze, Tönnies (GER) |
| 26 January 2019 20:30 | 2× 3× | Report | 2× 2× | Jyske Bank Boxen, Herning Attendance: 6,075 Referees: Schulze, Tönnies (GER) |

### Third place game

| 27 January 2019 14:30 | Germany | 25–26 | France | Jyske Bank Boxen, Herning Attendance: 14,121 Referees: Santos, Fonseca (POR) |
| 27 January 2019 14:30 | Gensheimer 7 | (13–9) | Mahé 7 | Jyske Bank Boxen, Herning Attendance: 14,121 Referees: Santos, Fonseca (POR) |
| 27 January 2019 14:30 | 2× 6× 1× | Report | 3× 4× | Jyske Bank Boxen, Herning Attendance: 14,121 Referees: Santos, Fonseca (POR) |

### Final

| 27 January 2019 17:30 | Norway | 22–31 | Denmark | Jyske Bank Boxen, Herning Attendance: 15,003 Referees: Gubica, Milošević (CRO) |
| 27 January 2019 17:30 | Jøndal 9 | (11–18) | M. Hansen 7 | Jyske Bank Boxen, Herning Attendance: 15,003 Referees: Gubica, Milošević (CRO) |
| 27 January 2019 17:30 | 1× 3× | Report | 1× 3× | Jyske Bank Boxen, Herning Attendance: 15,003 Referees: Gubica, Milošević (CRO) |

## Final ranking

Places 1–8 and 13–24 were decided by play–off or knock–out. Teams finishing fifth in the main round are ranked 9th to 10th and teams ranked sixth are ranked 11th and 12th. In case of a tie in points gained, the goal difference of the preliminary round were taken into account.
| Rank | Team |
| | Denmark |
| | Norway |
| | France |
| 4 | Germany |
| 5 | Sweden |
| 6 | Croatia |
| 7 | Spain |
| 8 | Egypt |
| 9 | Brazil |
| 10 | Hungary |
| 11 | Iceland |
| 12 | Tunisia |
| 13 | Qatar |
| 14 | Russia |
| 15 | Macedonia |
| 16 | Chile |
| 17 | Argentina |
| 18 | Serbia |
| 19 | Austria |
| 20 | Bahrain |
| 21 | Saudi Arabia |
| 22 | Korea |
| 23 | Angola |
| 24 | Japan |
* Qualified for the 2020 Summer Olympics and the 2021 World Men's Handball Championship
* Qualified for the Olympic Qualification Tournament
* 2019 Men's World Champions
* Denmark First title
* Team roster
* Jannick Green, Simon Hald, Henrik Toft Hansen, Jóhan Hansen, Lasse Svan Hansen, Mikkel Hansen, Rene Toft Hansen, Niklas Landin Jacobsen, Magnus Landin Jacobsen, Mads Mensah Larsen, Hans Lindberg, Nikolaj Markussen, Casper Ulrich Mortensen, Henrik Møllgaard, Nikolaj Øris Nielsen, Morten Olsen, Rasmus Lauge Schmidt, Anders Zachariassen Head coach: Nikolaj Jacobsen

## Awards
### All-Star Team

All-Star Team of the tournament and MVP.
| Position | Player |
| Goalkeeper | Niklas Landin Jacobsen |
| Left wing | Magnus Jøndal |
| Left back | Sander Sagosen |
| Centre back | Rasmus Lauge Schmidt |
| Right back | Fabian Wiede |
| Right wing | Ferran Solé |
| Pivot | Bjarte Myrhol |
| Most valuable player | Mikkel Hansen |

## International broadcasters

Source:

### Television and video streaming
#### Host broadcasters

| Country | Broadcaster | Summary |
| Denmark | DR | All matches live on al three DR television channels, TV2, and TV2 Sport respectively. Simulcast coverage for a final match. |
| Denmark | TV 2 | All matches live on al three DR television channels, TV2, and TV2 Sport respectively. Simulcast coverage for a final match. |
| Germany | ARD | Live coverage respectively for Germany matches only, with highlights of all other matches. |
| Germany | ZDF | Live coverage respectively for Germany matches only, with highlights of all other matches. |
| Germany | Eurosport | 15 matches live, excluding Germany. |
| Germany | Sportdeutschland.TV | All matches |
| Germany | RTL | News report coverage for other team matches on RTL, RTL II, Nitro, VOX, and N-TV |
| Germany | WeltN24 | News report coverage for Germany team matches only, on Welt and Sky Sport News. |
| Germany | Sky | News report coverage for Germany team matches only, on Welt and Sky Sport News. |

#### Other broadcasters

| Country/Region | Broadcaster | Summary |
| Worldwide | IHF TV | All 96 matches exclusively live and free via the official IHF tournament website (unsold markets only) |
| Worldwide | SNTV | News report access (49 matches after Preliminary Round – online/social embargoes: France, Germany, Korea, and Scandinavia) |
| Argentina | Televisión Pública | Eight matches live and free (all Argentina team and a final) |
| Argentina | DeporTV (Argentina) [es] | Selected matches live and free, including all Argentina team in simulcast with Televisión Pública. |
| Australia | Eurosport | Up to 38 matches live on Eurosport 1 (Australia, Asia-Pacific, and Poland) and Eurosport 2 (Poland only), in English language (for Australia and Asia-Pacific) and Polish language (for Poland). |
| Asia-Pacific  Indonesia  South Korea  Malaysia  Mongolia  Myanmar  Papua New Guinea  Philippines  Singapore  Chinese Taipei | Eurosport | Up to 38 matches live on Eurosport 1 (Australia, Asia-Pacific, and Poland) and Eurosport 2 (Poland only), in English language (for Australia and Asia-Pacific) and Polish language (for Poland). |
| Poland | Eurosport | Up to 38 matches live on Eurosport 1 (Australia, Asia-Pacific, and Poland) and Eurosport 2 (Poland only), in English language (for Australia and Asia-Pacific) and Polish language (for Poland). |
| Austria | ORF | 10 matches live and free on ORF Sport +, (all Austria team, both semi-finals, and a final). |
| Balkan countries  Bosnia and Herzegovina  Kosovo  Macedonia  Montenegro  Serbia | Arena Sport | All 96 matches exclusively live. |
| Belarus | Poverkhnost | Selected matches live on Sport 1 and Sport 2. |
| Baltic countries  Estonia  Latvia  Lithuania | Poverkhnost | Selected matches live on Sport 1 and Sport 2. |
| Moldova | Poverkhnost | Selected matches live on Sport 1 and Sport 2. |
| Ukraine | Poverkhnost | Selected matches live on Sport 1 and Sport 2. |
| Bulgaria | BNT | All matches exclusively live and free on all three BNT channels. |
| Caribbean | DirecTV | All matches exclusively live on DirecTV Sports. |
| Latin American countries  Argentina  Bolivia  Chile  Colombia  Costa Rica  Cuba  Dominican Republic  Ecuador  El Salvador  Guatemala  Honduras  Mexico  Nicaragua  Panama  Paraguay  Peru  Puerto Rico  Uruguay  Venezuela | DirecTV | All matches exclusively live on DirecTV Sports. |
| Croatia | RTL | Selected matches live and free, including all Croatia team, both semi-finals, and a final. |
| Cyprus | CytaVision | All 96 matches exclusively live. |
| Czech Republic | Czech Television | Selected matches live and free on ČT Sport. |
| Egypt | ERTU | Live and free coverage on Nile Sport for Egypt matches only. |
| France | TF1 | Live and free coverage for France matches only. |
| France | beIN Sports | Selected matches live, including all France team. |
| Georgia | Silk Sport | All 96 matches exclusively live. |
| Hungary | MTVA | Selected matches live and free on M4. |
| Iceland | RÚV | Live and free coverage for Iceland matches only. |
| Ireland | Premier Media Broadcasting Ltd. | 9 matches, live and free on FreeSports (starting with the 6 main round matches, both semi-finals, and a final). |
| United Kingdom | Premier Media Broadcasting Ltd. | 9 matches, live and free on FreeSports (starting with the 6 main round matches, both semi-finals, and a final). |
| Israel | Charlton Ltd. | Selected matches live on Sport 1 and Sport 2. |
| Italy | Pallamano.TV | 10 selected matches exclusively live |
| South Korea | JTBC | 10 matches live on JTBC3 Fox Sports (all Korea team, both semi-finals, and a final). Plus free coverage for highlights on JTBC3 Fox Sports YouTube channel. |
| Macedonia | MRT | 10 matches live and free on MRT 1 (in Macedonian) and MRT 2 (in Albanian) (all Macedonia team, both semi-finals, and a final). |
| Mexico | Canal Once | Live coverage of final match only. |
| Nordic countries  Finland  Norway  Sweden | NENT | All 96 matches exclusively live on Viaplay, selected matches also available live on Viasport (excluding Sweden matches for Sweden viewers) and free on Viafree (Finland, Norway, and Sweden), with all Norway and Sweden matches live and free on TV3 (Norway and Sweden only). |
| Netherlands | Ziggo | Selected matches live on Ziggo Sport Totaal, also available for free on Ziggo Sport (Ziggo customers only). |
| Portugal | Sport TV | Selected matches live. |
| Romania | Telekom Sport | All 96 matches exclusively live on Telekom Sport 1, Telekom Sport 2, Telekom Sport 3 or Telekom Sport 4, and Digi Sport 1, Digi Sport 2, Digi Sport 3 or Digi Sport 4. |
| Romania | Digi Sport | All 96 matches exclusively live on Telekom Sport 1, Telekom Sport 2, Telekom Sport 3 or Telekom Sport 4, and Digi Sport 1, Digi Sport 2, Digi Sport 3 or Digi Sport 4. |
| Russia | Match TV | Selected matches live, including all Russia team. |
| Saudi Arabia | SBC | |
| Serbia | RTS | 10 matches live and free (all Serbia teams, both semi-finals, and a final). |
| Slovakia | Pragosport | Selected matches live. |
| Slovenia | Šport TV | Selected matches live. |
| Sub-Saharan Africa English language only  Angola  Botswana  Cape Verde  Eritrea  Eswatini  Ethiopia  Gambia  Ghana  Guinea-Bissau  Kenya  Lesotho  Liberia  Malawi  Mozambique  Namibia  Nigeria  Sao Tome and Principe  Sierra Leone  Somalia  South Africa  South Sudan  Sudan  Tanzania  Uganda  Zimbabwe  Zambia Also available in French language  Benin  Burkina Faso  Burundi  Cameroon  Central African Republic  Chad  Comoros  Congo  DR Congo  Djibouti  Equatorial Guinea  Gabon  Guinea  Ivory Coast  Madagascar  Mali  Mauritania  Mauritius  Niger  Rwanda  Senegal  Seychelles  Togo | Econet Media | 10 matches live on Kwesé Sports in English language, starting from Main round, including both semi-finals and a final. |
| Sub-Saharan Africa English language only  Angola  Botswana  Cape Verde  Eritrea  Eswatini  Ethiopia  Gambia  Ghana  Guinea-Bissau  Kenya  Lesotho  Liberia  Malawi  Mozambique  Namibia  Nigeria  Sao Tome and Principe  Sierra Leone  Somalia  South Africa  South Sudan  Sudan  Tanzania  Uganda  Zimbabwe  Zambia Also available in French language  Benin  Burkina Faso  Burundi  Cameroon  Central African Republic  Chad  Comoros  Congo  DR Congo  Djibouti  Equatorial Guinea  Gabon  Guinea  Ivory Coast  Madagascar  Mali  Mauritania  Mauritius  Niger  Rwanda  Senegal  Seychelles  Togo | Canal+ | More than 10 matches live on Canal+ Sport in French language, starting from Preliminany round, including selected main round, both semi-finals and a final. |
| Spain | RTVE | Selected matches live on Teledeporte, including Spain team. |
| Switzerland | TV24 | 6 matches live and free in German language. |
| Tunisia | ÉRTT | Live and free coverage on Tunisia 1 or Tunisia 2 for Tunisia matches only. |
| United States | NBC Sports | 9 matches live on Olympic Channel (6 main round matches, both semi-finals, and final) and final tape-delayed on NBCSN. |

### Radio and audio streaming

| Region | Radio |
| Europe | EBU |