The draw for this round was conducted at the headquarters of the Polish FA on 22 June 2017. Participating in this round were 16 regional cup winners, 18 teams from the 2016–17 II liga and 6 lowest ranked teams from the 2016–17 I liga. The matches were played from 14 to 18 July 2017. 16 of the 24 I liga and II liga teams participating in the preliminary round were drawn against the 16 regional cup winners, and the remaining 8 were drawn against each other. Games were hosted by teams playing in the lower division in the 2017–18 season. The host of Legionovia Legionowo vs. Znicz Pruszków game was determined by the order in which the teams were drawn. The number in brackets indicates what tier of Polish football each team competes in during the 2017–18 season. ! colspan="3" style="background:#fcc;"|14 July 2017 ! colspan="3" style="background:#fcc;"|15 July 2017 ! colspan="3" style="background:#fcc;"|16 July 2017 ! colspan="3" style="background:#fcc;"|18 July 2017
First round
The draw for this round was conducted at the headquarters of the Polish FA on 22 June 2017. The matches were played from 22 to 26 July 2017. Participating in this round were the 20 winners from the [|previous round] and 12 highest ranked teams from the 2016–17 I liga. Winners of matches were advanced to the next round. The 12 teams joining in this round were seeded and their opponents were drawn from the 20 winners of the preliminary round. Games will be hosted by teams playing in the lower division in the 2017–18 season. Host of match between Puszcza Niepołomice and GKS Tychy was decided by a draw on 17 July 2017. The number in brackets indicates what tier of Polish football each team competes in during the 2017–18 season. ! colspan="3" style="background:#fcc;"|22 July 2017 ! colspan="3" style="background:#fcc;"|23 July 2017 ! colspan="3" style="background:#fcc;"|26 July 2017
Bracket
Round of 32
The draw for this round was conducted at the PGE Narodowy on 25 July 2017. The matches were played on 8–10 August 2017. Participating in this round were the 16 winners from the previous round and 16 teams from the 2016–17 Ekstraklasa. Games were hosted by teams playing in the lower division in the 2017–18 season. The hosts of matches of teams playing in the same tier were the teams occupying a higher position in the bracket. ! colspan="3" style="background:#fcc;"|8 August 2017 ! colspan="3" style="background:#fcc;"|9 August 2017 ! colspan="3" style="background:#fcc;"|10 August 2017
[|Round of 16]
The 16 winners from the previous round competed in this round. The draw for this round was conducted at PGE Narodowy, Warsaw on 25 July 2017. Matches were played from 19 September to 27 September 2017. Hosts of matches between teams playing in the same tier were decided by a draw conducted on 11 August 2017. ! colspan="3" style="background:#fcc;"|19 September 2017 ! colspan="3" style="background:#fcc;"|20 September 2017 ! colspan="3" style="background:#fcc;"|21 September 2017 ! colspan="3" style="background:#fcc;"|26 September 2017 ! colspan="3" style="background:#fcc;"|27 September 2017
[|Quarterfinals]
The 8 winners from Round of 16 competed in this round. The matches were played in two legs. The first leg took place on 24–26 October 2017. The second leg took place on 28 and 29 November 2017. The draw for this round was conducted at PGE Narodowy, Warsaw on 25 July 2017. Host of first match between teams playing in the same tier was decided by a draw conducted on 28 September 2017.
Matches
Górnik Zabrze won 6–1 on aggregate. ---- Legia Warsaw won 7–3 on aggregate. ---- Arka Gdynia won 3–1 on aggregate. ---- Korona Kielce won 3–0 on aggregate.
Semifinals
The 4 winners from the Quarterfinals competed in this round. The matches were played in two legs. The first legs took place on 3-4 April 2018. The second legs took place on 18 April 2017. The draw for this round was conducted at Stadion Miejski, Kielce on 29 November 2017.
Matches
Legia won 3–2 on aggregate ---- 2–2 on aggregate. Arka Gdynia won on away goals.
Final
The final match was played at the PGE Narodowy, Warsaw on 2 May 2018. The host of the final match was decided by a draw which was conducted on 17 April 2018.