Knockout bracket
Round of 16
Quarterfinal
Early rounds
Round of 32 12 matches
| Winner | Loser | Set 1 | Set 2 | Set 3 |
|---|---|---|---|---|
| Bernabe Zapata Miralles | Pablo Cuevas | 4-6 | 6-2 | 6-4 |
| Daniel Altmaier | Corentin Moutet | 5-7 | 6-1 | 0-0 |
| Gianluca Mager | Pedro Martinez | 0-6 | 6-3 | 6-3 |
| Alessandro Giannessi | Jiri Vesely | 7-64 | 7-5 | · |
| Damir Dzumhur | Filip Horansky | 6-4 | 6-3 | · |
| Marco Cecchinato | Aljaz Bedene | 6-1 | 6-4 | · |
| Carlos Alcaraz | Lucas Pouille | 3-6 | 6-2 | 6-2 |
| Andrej Martin | Renzo Olivo | 1-6 | 6-2 | 7-61 |
| Radu Albot | Holger Rune | 1-6 | 6-3 | 6-2 |
| Stefano Travaglia | Jaume Munar | 6-3 | 7-61 | · |
| Carlos Taberner | Nino Serdarusic | 6-2 | 6-2 | · |
| Duje Ajdukovic | Andrea Collarini | 6-3 | 6-2 | · |
Players
| Player | Country | Reached | |
|---|---|---|---|
| Carlos Alcaraz | ESP | Winner | |
| Richard Gasquet | FRA | Final | |
| Albert Ramos | ESP | Semifinal | |
| Daniel Altmaier | GER | Semifinal | |
| Damir Dzumhur | BIH | Quarterfinal | |
| Dusan Lajovic | SRB | Quarterfinal | |
| Filip Krajinovic | SRB | Quarterfinal | |
| Stefano Travaglia | ITA | Quarterfinal | |
| Alessandro Giannessi | ITA | Round of 16 | |
| Andrej Martin | SVK | Round of 16 | |
| Bernabe Zapata Miralles | ESP | Round of 16 | |
| Carlos Taberner | ESP | Round of 16 | |
| Duje Ajdukovic | CRO | Round of 16 | |
| Gianluca Mager | ITA | Round of 16 | |
| Marco Cecchinato | ITA | Round of 16 | |
| Radu Albot | MDA | Round of 16 | |
| Aljaz Bedene | SLO | Round of 32 | |
| Andrea Collarini | ARG | Round of 32 | |
| Corentin Moutet | FRA | Round of 32 | |
| FH | Filip Horansky | SVK | Round of 32 |
| Holger Rune | DEN | Round of 32 | |
| Jaume Munar | ESP | Round of 32 | |
| Jiri Vesely | CZE | Round of 32 | |
| Lucas Pouille | FRA | Round of 32 | |
| Nino Serdarusic | CRO | Round of 32 | |
| Pablo Cuevas | URU | Round of 32 | |
| Pedro Martinez | ESP | Round of 32 | |
| Renzo Olivo | ARG | Round of 32 |