# 2021 Campeonato Brasileiro Série D

The 2021 Campeonato Brasileiro Série D was a football competition held in Brazil, equivalent to the fourth division. The competition began on 26 May and ended on 13 November 2021.
Sixty-eight teams competed in the tournament. Sixty-four teams qualified from their state leagues and cups, and four relegated from the 2020 Campeonato Brasileiro Série C (Boa Esporte, Imperatriz, São Bento and Treze).
The match Imperatriz v 4 de Julho, played at the Estádio Frei Epifânio D'Abadia (Imperatriz) on 28 August 2021 (Group A2 13th round), was finished in the 76th minute (0–0) after a strong storm caused the partial collapse of the grandstand roof located over the press booths and changing rooms of the teams and referees.
ABC, Aparecidense, Atlético Cearense and Campinense qualified for the semi-finals and were promoted to the 2022 Campeonato Brasileiro Série C.
In the finals, Aparecidense defeated Campinense 2–1 on aggregate to win their first title.

## Teams
### Federation ranking

The number of teams from each state was chosen based on the CBF State Ranking.
| Rank | Federation | Coeff. | Teams | Notes |
| 1 | São Paulo | 84,516 | 4 | +1 (C) |
| 2 | Rio de Janeiro | 50,134 | 3 | |
| 3 | Rio Grande do Sul | 45,127 | 3 | |
| 4 | Minas Gerais | 40,542 | 3 | +1 (C) |
| 5 | Paraná | 33,927 | 3 | |
| 6 | Santa Catarina | 28,094 | 3 | |
| 7 | Goiás | 21,381 | 3 | |
| 8 | Ceará | 21,084 | 3 | |
| 9 | Bahia | 20,528 | 3 | |
| 10 | Pernambuco | 17,944 | 2 | |
| 11 | Alagoas | 12,040 | 2 | |
| 12 | Mato Grosso | 10,510 | 2 | |
| 13 | Pará | 8,790 | 2 | |
| 14 | Maranhão | 7,941 | 2 | +1 (C) |
| 15 | Rio Grande do Norte | 5,924 | 2 | |
| 16 | Paraíba | 5,440 | 2 | +1 (C) |
| 17 | Sergipe | 4,662 | 2 | |
| 18 | Acre | 3,294 | 2 | |
| 19 | Amazonas | 2,757 | 2 | |
| 20 | Piauí | 2,491 | 2 | |
| 21 | Distrito Federal | 2,237 | 2 | |
| 22 | Espírito Santo | 1,921 | 2 | |
| 23 | Mato Grosso do Sul | 1,895 | 2 | |
| 24 | Rondônia | 1,790 | 2 | |
| 25 | Roraima | 1,769 | 2 | |
| 26 | Tocantins | 1,648 | 2 | |
| 27 | Amapá | 1,584 | 2 | |

### Participating teams

Teams in italic played the preliminary stage. The teams were:
| Federation | Team | Home city | Qualification method |
| Acre | Galvez | Rio Branco | 2020 Campeonato Acriano champions |
| Acre | Atlético Acreano | Rio Branco | 2020 Campeonato Acriano runners-up |
| Alagoas | Murici | Murici | 2020 Campeonato Alagoano 3rd place |
| Alagoas | ASA | Arapiraca | 2020 Copa Alagoas champions |
| Amapá | Ypiranga | Macapá | 2020 Campeonato Amapaense champions |
| Amapá | Santana | Santana | 2020 Campeonato Amapaense runners-up |
| Amazonas | Penarol | Itacoatiara | 2020 Campeonato Amazonense champions |
| Amazonas | Fast Clube | Manaus | 2020 Campeonato Amazonense 3rd place |
| Bahia | Atlético de Alagoinhas | Alagoinhas | 2020 Campeonato Baiano runners-up |
| Bahia | Juazeirense | Juazeiro | 2020 Campeonato Baiano 3rd place |
| Bahia | Bahia de Feira | Feira de Santana | 2020 Campeonato Baiano 6th place |
| Ceará | Guarany de Sobral | Sobral | 2020 Campeonato Cearense 4th place |
| Ceará | Atlético Cearense | Fortaleza | 2020 Campeonato Cearense 5th place |
| Ceará | Caucaia | Caucaia | 2020 Campeonato Cearense 6th place |
| Espírito Santo | Rio Branco de Venda Nova | Venda Nova do Imigrante | 2020 Campeonato Capixaba champions |
| Espírito Santo | Rio Branco-ES | Vitória | 2020 Campeonato Capixaba runners-up |
| Federal District | Gama | Gama | 2020 Campeonato Brasiliense champions |
| Federal District | Brasiliense | Taguatinga | 2020 Campeonato Brasiliense runners-up |
| Goiás | Goianésia | Goianésia | 2020 Campeonato Goiano runners-up |
| Goiás | Jaraguá | Jaraguá | 2020 Campeonato Goiano 3rd place |
| Goiás | Aparecidense | Aparecida de Goiânia | 2020 Campeonato Goiano 4th place |
| Maranhão | Moto Club | São Luís | 2020 Campeonato Maranhense runners-up |
| Maranhão | Juventude Samas | São Mateus do Maranhão | 2020 Campeonato Maranhense 3rd place |
| Maranhão | Imperatriz | Imperatriz | 2020 Série C Group A 10th place |
| Mato Grosso | Nova Mutum | Nova Mutum | 2020 Campeonato Mato-Grossense champions |
| Mato Grosso | União Rondonópolis | Rondonópolis | 2020 Campeonato Mato-Grossense runners-up |
| Mato Grosso do Sul | Águia Negra | Rio Brilhante | 2020 Campeonato Sul-Mato-Grossense champions |
| Mato Grosso do Sul | Aquidauanense | Aquidauana | 2020 Campeonato Sul-Mato-Grossense runners-up |
| Minas Gerais | Caldense | Poços de Caldas | 2020 Campeonato Mineiro 4th place |
| Minas Gerais | Uberlândia | Uberlândia | 2020 Campeonato Mineiro 5th place |
| Minas Gerais | Patrocinense | Patrocínio | 2020 Campeonato Mineiro 8th place |
| Minas Gerais | Boa Esporte | Varginha | 2020 Série C Group B 10th place |
| Pará | Castanhal | Castanhal | 2020 Campeonato Paraense 3rd place |
| Pará | Paragominas | Paragominas | 2020 Campeonato Paraense 4th place |
| Paraíba | Campinense | Campina Grande | 2020 Campeonato Paraibano runners-up |
| Paraíba | Sousa | Sousa | 2020 Campeonato Paraibano 4th place |
| Paraíba | Treze | Campina Grande | 2020 Série C Group A 9th place |
| Paraná | FC Cascavel | Cascavel | 2020 Campeonato Paranaense 3rd place |
| Paraná | Cianorte | Cianorte | 2020 Campeonato Paranaense 4th place |
| Paraná | Rio Branco-PR | Paranaguá | 2020 Campeonato Paranaense 7th place |
| Pernambuco | Retrô | Camaragibe | 2020 Campeonato Pernambucano first stage 3rd place |
| Pernambuco | Central | Caruaru | 2020 Campeonato Pernambucano first stage 5th place |
| Piauí | 4 de Julho | Piripiri | 2020 Campeonato Piauiense champions |
| Piauí | Picos | Picos | 2020 Campeonato Piauiense runners-up |
| Rio de Janeiro | Boavista | Saquarema | 2020 Campeonato Carioca 4th place |
| Rio de Janeiro | Madureira | Rio de Janeiro | 2020 Campeonato Carioca 6th place |
| Rio de Janeiro | Bangu | Rio de Janeiro | 2020 Campeonato Carioca 8th place |
| Rio Grande do Norte | ABC | Natal | 2020 Campeonato Potiguar champions |
| Rio Grande do Norte | América de Natal | Natal | 2020 Campeonato Potiguar runners-up |
| Rio Grande do Sul | Caxias | Caxias do Sul | 2020 Campeonato Gaúcho 3rd place |
| Rio Grande do Sul | Esportivo | Bento Gonçalves | 2020 Campeonato Gaúcho 4th place |
| Rio Grande do Sul | Aimoré | São Leopoldo | 2020 Campeonato Gaúcho 7th place |
| Rondônia | Porto Velho | Porto Velho | 2020 Campeonato Rondoniense champions |
| Rondônia | Real Ariquemes | Ariquemes | 2020 Campeonato Rondoniense runners-up |
| Roraima | São Raimundo | Boa Vista | 2020 Campeonato Roraimense champions |
| Roraima | GAS | Caracaraí | 2020 Campeonato Roraimense runners-up |
| Santa Catarina | Juventus | Jaraguá do Sul | 2020 Campeonato Catarinense 4th place |
| Santa Catarina | Marcílio Dias | Itajaí | 2020 Campeonato Catarinense 7th place |
| Santa Catarina | Joinville | Joinville | 2020 Campeonato Catarinense 8th place |
| São Paulo | Santo André | Santo André | 2020 Campeonato Paulista 7th place |
| São Paulo | Ferroviária | Araraquara | 2020 Campeonato Paulista 11th place |
| São Paulo | Inter de Limeira | Limeira | 2020 Campeonato Paulista 12th place |
| São Paulo | Portuguesa | São Paulo | 2020 Copa Paulista champions |
| São Paulo | São Bento | Sorocaba | 2020 Série C Group B 9th place |
| Sergipe | Sergipe | Aracaju | 2020 Campeonato Sergipano runners-up |
| Sergipe | Itabaiana | Itabaiana | 2020 Campeonato Sergipano 3rd place |
| Tocantins | Palmas | Palmas | 2020 Campeonato Tocantinense champions |
| Tocantins | Tocantinópolis | Tocantinópolis | 2020 Campeonato Tocantinense runners-up |
    $^a$ As the 2020 Copa Espírito Santo was cancelled, its 2021 Série D berth was awarded to the best placed team in the 2020 Campeonato Capixaba not already qualified, Rio Branco-ES (2020 Campeonato Capixaba runners-up).
    $^b$ As the 2020 Copa FMF was cancelled, its 2021 Série D berth was awarded to the best placed team in the 2020 Campeonato Maranhense not already qualified, Juventude Samas (2020 Campeonato Maranhense 3rd place).
    $^c$ Salgueiro, 2020 Campeonato Pernambucano first stage runners-up, declined to participate in the Série D on 12 April 2021, being replaced by Central (2020 Campeonato Pernambucano first stage 5th place).
    $^d$ As the 2020 Copa Rio was cancelled, its 2021 Série D berth was awarded to the best placed team in the 2020 Campeonato Carioca not already qualified, Bangu (2020 Campeonato Carioca 8th place).
    $^e$ Originally a finalist of 2020 Copa FGF would qualify for 2021 Série D, but FGF decided to award the Copa FGF berth to the best placed team in the 2020 Campeonato Gaúcho not already qualified, Aimoré (2020 Campeonato Gaúcho 7th place).

## Competition format

In the preliminary stage, eight teams from the worst ranked federations in the CBF ranking were drawn into four ties, with the winners of each tie advancing to the group stage. In the group stage, the remaining 60 teams and the 4 four teams qualified from the preliminary stage were divided into eight groups of eight organized regionally. Top four teams qualified for the round of 32. From the round of 32 on the competition was played as a knock-out tournament with each round contested over two legs.

## Preliminary stage

It was played from 26 to 30 May. The lowest-seeded teams from the eight worst ranked federations in the 2021 CBF ranking (Piauí, Distrito Federal, Espírito Santo, Mato Grosso do Sul, Rondônia, Roraima, Tocantins and Amapá) competed to decide four places in the group stage.
Each tie was played on a home-and-away two-legged basis. If tied on aggregate, the away goals rule would not be used, extra time would not be played, and the penalty shoot-out would be used to determine the winners (Regulations Article 18).

### Matches

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Santana | 1–5 | GAS | 1–2 | 0–3 |
| Tocantinópolis | 3–3 (4–1 p) | Picos | 2–0 | 1–3 |
| Real Ariquemes | 1–5 | Brasiliense | 0–2 | 1–3 |
| Aquidauanense | 1–6 | Rio Branco-ES | 1–4 | 0–2 |

## Group stage

In the group stage, each group was played on a home-and-away round-robin basis. The teams were ranked according to points (3 points for a win, 1 point for a draw, and 0 points for a loss). If tied on points, the following criteria would be used to determine the ranking: 1. Wins; 2. Goal difference; 3. Goals scored; 4. Head-to-head (if the tie was only between two teams); 5. Fewest red cards; 6. Fewest yellow cards; 7. Draw in the headquarters of the Brazilian Football Confederation (Regulations Article 13).
The top four teams qualified for the round of 32.

### Group A1

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | CAS | SAO | PEN | GAL | FAS | YPI | GAS | ATL |
| 1 | Castanhal | 14 | 11 | 3 | 0 | 33 | 11 | +22 | 36 | Advance to round of 32 | | 1–1 | 1–1 | 4–1 | 2–1 | 2–1 | 5–0 | 3–1 |
| 2 | São Raimundo | 14 | 8 | 5 | 1 | 28 | 11 | +17 | 29 | Advance to round of 32 | 1–2 | | 2–1 | 3–1 | 1–1 | 4–0 | 1–1 | 7–1 |
| 3 | Penarol | 14 | 7 | 3 | 4 | 23 | 14 | +9 | 24 | Advance to round of 32 | 0–1 | 1–1 | | 2–0 | 2–1 | 1–1 | 2–1 | 5–0 |
| 4 | Galvez | 14 | 7 | 1 | 6 | 22 | 24 | −2 | 22 | Advance to round of 32 | 1–5 | 0–1 | 1–3 | | 2–2 | 2–0 | 2–1 | 2–1 |
| 5 | Fast Clube | 14 | 3 | 6 | 5 | 21 | 20 | +1 | 15 | | 1–2 | 0–0 | 3–2 | 1–2 | | 3–3 | 4–0 | 1–0 |
| 6 | Ypiranga | 14 | 3 | 4 | 7 | 13 | 22 | −9 | 13 | | 0–2 | 0–1 | 1–0 | 0–1 | 1–1 | | 0–0 | 2–1 |
| 7 | GAS | 14 | 2 | 3 | 9 | 12 | 29 | −17 | 9 | | 2–2 | 0–2 | 0–1 | 0–3 | 3–2 | 1–2 | | 2–0 |
| 8 | Atlético Acreano | 14 | 2 | 1 | 11 | 14 | 35 | −21 | 7 | | 0–1 | 2–3 | 1–2 | 1–4 | 0–0 | 3–2 | 3–1 | |

### Group A2

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | GUA | 4DE | PAR | MOT | PAL | IMP | JUV | TOC |
| 1 | Guarany de Sobral | 14 | 9 | 1 | 4 | 24 | 16 | +8 | 28 | Advance to round of 32 | | 3–1 | 1–0 | 4–2 | 2–1 | 1–1 | 2–1 | 2–1 |
| 2 | 4 de Julho | 14 | 7 | 3 | 4 | 18 | 11 | +7 | 24 | Advance to round of 32 | 0–2 | | 4–0 | 2–0 | 1–2 | 2–0 | 1–0 | 1–1 |
| 3 | Paragominas | 14 | 6 | 5 | 3 | 26 | 19 | +7 | 23 | Advance to round of 32 | 2–1 | 1–2 | | 2–2 | 1–1 | 4–1 | 0–0 | 4–1 |
| 4 | Moto Club | 14 | 6 | 3 | 5 | 20 | 19 | +1 | 21 | Advance to round of 32 | 0–2 | 1–0 | 1–4 | | 1–0 | 1–1 | 3–1 | 3–0 |
| 5 | Palmas | 14 | 5 | 3 | 6 | 19 | 17 | +2 | 18 | | 0–2 | 1–2 | 0–0 | 2–1 | | 0–0 | 1–2 | 2–1 |
| 6 | Imperatriz | 14 | 3 | 8 | 3 | 14 | 17 | −3 | 17 | | 1–0 | 0–0 | 2–2 | 0–1 | 3–2 | | 1–1 | 3–2 |
| 7 | Juventude Samas | 14 | 3 | 5 | 6 | 13 | 21 | −8 | 14 | | 2–0 | 0–0 | 1–3 | 0–3 | 0–3 | 1–1 | | 3–3 |
| 8 | Tocantinópolis | 14 | 1 | 4 | 9 | 17 | 31 | −14 | 7 | | 4–2 | 0–2 | 2–3 | 1–1 | 1–4 | 0–0 | 0–1 | |

### Group A3

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | ABC | CAM | AME | ATL | SOU | CEN | TRE | CAU |
| 1 | ABC | 14 | 9 | 1 | 4 | 30 | 13 | +17 | 28 | Advance to round of 32 | | 2–0 | 3–1 | 0–2 | 4–0 | 2–0 | 2–0 | 9–1 |
| 2 | Campinense | 14 | 7 | 4 | 3 | 23 | 12 | +11 | 25 | Advance to round of 32 | 0–1 | | 3–0 | 3–0 | 1–0 | 2–1 | 0–0 | 5–0 |
| 3 | América de Natal | 14 | 6 | 4 | 4 | 25 | 20 | +5 | 22 | Advance to round of 32 | 2–3 | 0–0 | | 2–0 | 4–1 | 1–0 | 2–2 | 4–2 |
| 4 | Atlético Cearense | 14 | 6 | 3 | 5 | 22 | 20 | +2 | 21 | Advance to round of 32 | 1–0 | 2–3 | 0–2 | | 2–0 | 0–0 | 2–2 | 4–1 |
| 5 | Sousa | 14 | 4 | 4 | 6 | 16 | 18 | −2 | 16 | | 2–0 | 3–2 | 0–2 | 2–1 | | 0–0 | 0–0 | 7–0 |
| 6 | Central | 14 | 3 | 6 | 5 | 13 | 17 | −4 | 15 | | 1–1 | 0–1 | 2–1 | 1–3 | 0–0 | | 2–1 | 3–2 |
| 7 | Treze | 14 | 2 | 9 | 3 | 18 | 16 | +2 | 15 | | 0–1 | 0–0 | 2–2 | 1–1 | 1–1 | 2–2 | | 3–1 |
| 8 | Caucaia | 14 | 2 | 3 | 9 | 20 | 51 | −31 | 9 | | 3–2 | 3–3 | 2–2 | 3–4 | 1–0 | 1–1 | 0–4 | |

### Group A4

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | JUA | ITA | SER | RET | ATL | BAH | ASA | MUR |
| 1 | Juazeirense | 14 | 7 | 6 | 1 | 18 | 9 | +9 | 27 | Advance to round of 32 | | 1–1 | 0–0 | 1–0 | 1–0 | 2–1 | 2–0 | 2–1 |
| 2 | Itabaiana | 14 | 7 | 5 | 2 | 22 | 13 | +9 | 26 | Advance to round of 32 | 1–1 | | 2–1 | 1–2 | 3–1 | 1–2 | 4–1 | 1–0 |
| 3 | Sergipe | 14 | 6 | 5 | 3 | 16 | 8 | +8 | 23 | Advance to round of 32 | 0–1 | 0–1 | | 1–0 | 1–0 | 4–0 | 2–0 | 2–1 |
| 4 | Retrô | 14 | 4 | 8 | 2 | 17 | 14 | +3 | 20 | Advance to round of 32 | 0–0 | 2–2 | 0–0 | | 3–1 | 1–1 | 3–3 | 1–0 |
| 5 | Atlético de Alagoinhas | 14 | 4 | 6 | 4 | 15 | 17 | −2 | 18 | | 3–3 | 0–0 | 0–0 | 1–1 | | 2–2 | 1–0 | 1–0 |
| 6 | Bahia de Feira | 14 | 3 | 6 | 5 | 18 | 20 | −2 | 15 | | 1–1 | 0–1 | 1–1 | 1–1 | 1–2 | | 1–0 | 6–1 |
| 7 | ASA | 14 | 3 | 3 | 8 | 12 | 22 | −10 | 12 | | 1–0 | 0–2 | 1–3 | 0–1 | 0–0 | 1–1 | | 4–2 |
| 8 | Murici | 14 | 1 | 3 | 10 | 14 | 29 | −15 | 6 | | 0–3 | 2–2 | 1–1 | 2–2 | 2–3 | 2–0 | 0–1 | |

### Group A5

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | APA | NOV | UNI | BRA | GOI | POR | GAM | JAR |
| 1 | Aparecidense | 14 | 8 | 4 | 2 | 19 | 8 | +11 | 28 | Advance to round of 32 | | 3–1 | 1–1 | 1–0 | 4–1 | 0–1 | 2–1 | 1–0 |
| 2 | Nova Mutum | 14 | 8 | 3 | 3 | 18 | 11 | +7 | 27 | Advance to round of 32 | 1–0 | | 1–0 | 1–0 | 2–0 | 1–1 | 1–1 | 2–0 |
| 3 | União Rondonópolis | 14 | 7 | 3 | 4 | 21 | 15 | +6 | 24 | Advance to round of 32 | 0–2 | 0–1 | | 2–1 | 0–1 | 1–1 | 2–1 | 2–1 |
| 4 | Brasiliense | 14 | 6 | 3 | 5 | 22 | 14 | +8 | 21 | Advance to round of 32 | 1–2 | 3–1 | 2–3 | | 1–1 | 2–1 | 0–0 | 3–0 |
| 5 | Goianésia | 14 | 5 | 6 | 3 | 15 | 14 | +1 | 21 | | 0–0 | 1–0 | 3–3 | 1–1 | | 1–1 | 2–1 | 0–1 |
| 6 | Porto Velho | 14 | 2 | 7 | 5 | 10 | 16 | −6 | 13 | | 0–2 | 1–1 | 0–2 | 1–3 | 0–1 | | 1–1 | 1–0 |
| 7 | Gama | 14 | 2 | 6 | 6 | 13 | 18 | −5 | 12 | | 0–0 | 0–3 | 0–3 | 0–1 | 0–0 | 1–1 | | 4–1 |
| 8 | Jaraguá | 14 | 1 | 2 | 11 | 6 | 28 | −22 | 5 | | 1–1 | 1–2 | 0–2 | 0–4 | 0–3 | 0–0 | 1–3 | |

### Group A6

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | FER | BOA | UBE | CAL | RVN | RIO | PAT | AGU |
| 1 | Ferroviária | 14 | 10 | 3 | 1 | 24 | 5 | +19 | 33 | Advance to round of 32 | | 2–0 | 0–3 | 3–1 | 1–0 | 2–0 | 1–0 | 7–0 |
| 2 | Boa Esporte | 14 | 6 | 6 | 2 | 20 | 11 | +9 | 24 | Advance to round of 32 | 0–0 | | 2–2 | 1–1 | 3–1 | 1–1 | 2–0 | 4–0 |
| 3 | Uberlândia | 14 | 6 | 5 | 3 | 21 | 15 | +6 | 23 | Advance to round of 32 | 1–1 | 0–0 | | 2–3 | 2–1 | 3–2 | 1–1 | 2–0 |
| 4 | Caldense | 14 | 6 | 3 | 5 | 26 | 19 | +7 | 21 | Advance to round of 32 | 0–1 | 0–1 | 3–1 | | 0–0 | 1–2 | 0–0 | 6–2 |
| 5 | Rio Branco de Venda Nova | 14 | 5 | 6 | 3 | 18 | 13 | +5 | 21 | | 0–0 | 2–1 | 1–0 | 3–0 | | 0–0 | 2–1 | 2–2 |
| 6 | Rio Branco-ES | 14 | 4 | 3 | 7 | 17 | 22 | −5 | 15 | | 0–3 | 1–2 | 0–2 | 1–2 | 0–3 | | 2–1 | 2–0 |
| 7 | Patrocinense | 14 | 1 | 4 | 9 | 9 | 22 | −13 | 7 | | 0–2 | 1–3 | 0–1 | 2–3 | 1–1 | 0–0 | | 1–0 |
| 8 | Águia Negra | 14 | 1 | 4 | 9 | 13 | 41 | −28 | 7 | | 0–1 | 0–0 | 1–1 | 0–6 | 2–2 | 2–6 | 4–1 | |

### Group A7

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | POR | SAN | CIA | BAN | INT | BOA | SAO | MAD |
| 1 | Portuguesa | 14 | 6 | 6 | 2 | 20 | 12 | +8 | 24 | Advance to round of 32 | | 1–0 | 2–2 | 1–1 | 0–1 | 3–0 | 2–0 | 2–0 |
| 2 | Santo André | 14 | 6 | 3 | 5 | 16 | 13 | +3 | 21 | Advance to round of 32 | 2–2 | | 1–0 | 1–2 | 2–1 | 0–1 | 1–1 | 2–0 |
| 3 | Cianorte | 14 | 4 | 8 | 2 | 12 | 9 | +3 | 20 | Advance to round of 32 | 0–0 | 1–1 | | 2–0 | 0–0 | 2–1 | 1–0 | 0–0 |
| 4 | Bangu | 14 | 5 | 4 | 5 | 14 | 16 | −2 | 19 | Advance to round of 32 | 2–1 | 1–2 | 1–1 | | 1–1 | 0–2 | 1–0 | 3–1 |
| 5 | Inter de Limeira | 14 | 5 | 4 | 5 | 11 | 14 | −3 | 19 | | 1–1 | 1–2 | 2–1 | 0–1 | | 1–0 | 0–2 | 0–3 |
| 6 | Boavista | 14 | 5 | 3 | 6 | 11 | 13 | −2 | 18 | | 0–1 | 0–2 | 1–1 | 2–0 | 0–1 | | 0–0 | 1–1 |
| 7 | São Bento | 14 | 3 | 5 | 6 | 10 | 13 | −3 | 14 | | 2–3 | 1–0 | 0–1 | 1–1 | 0–0 | 0–1 | | 1–1 |
| 8 | Madureira | 14 | 3 | 5 | 6 | 12 | 16 | −4 | 14 | | 1–1 | 1–0 | 0–0 | 1–0 | 1–2 | 1–2 | 1–2 | |

### Group A8

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | JOI | CAS | ESP | CAX | JUV | MAR | AIM | RIO |
| 1 | Joinville | 14 | 7 | 7 | 0 | 17 | 6 | +11 | 28 | Advance to round of 32 | | 3–1 | 0–0 | 2–0 | 1–0 | 1–1 | 1–0 | 3–0 |
| 2 | FC Cascavel | 14 | 7 | 6 | 1 | 27 | 17 | +10 | 27 | Advance to round of 32 | 3–3 | | 2–1 | 1–0 | 1–0 | 2–0 | 2–2 | 3–1 |
| 3 | Esportivo | 14 | 4 | 6 | 4 | 15 | 13 | +2 | 18 | Advance to round of 32 | 0–1 | 2–2 | | 1–1 | 2–1 | 0–0 | 2–1 | 4–1 |
| 4 | Caxias | 14 | 4 | 6 | 4 | 15 | 13 | +2 | 18 | Advance to round of 32 | 0–0 | 1–1 | 0–1 | | 1–1 | 2–0 | 2–1 | 5–1 |
| 5 | Juventus | 14 | 4 | 6 | 4 | 12 | 11 | +1 | 18 | | 0–1 | 1–1 | 1–0 | 1–1 | | 2–0 | 1–0 | 0–0 |
| 6 | Marcílio Dias | 14 | 4 | 6 | 4 | 13 | 17 | −4 | 18 | | 1–1 | 1–1 | 2–1 | 0–0 | 1–1 | | 3–2 | 2–0 |
| 7 | Aimoré | 14 | 3 | 3 | 8 | 15 | 18 | −3 | 12 | | 0–0 | 1–3 | 1–1 | 2–0 | 0–1 | 4–1 | | 1–0 |
| 8 | Rio Branco-PR | 14 | 1 | 4 | 9 | 8 | 27 | −19 | 7 | | 0–0 | 1–4 | 0–0 | 1–2 | 2–2 | 0–1 | 1–0 | |
* 1 2 Head-to-head points: Esportivo 4; Caxias 1

## Final stages

The final stages were played on a home-and-away two-legged basis. For the round of 16, semi-finals and finals, the best-overall-performance team hosted the second leg. If tied on aggregate, the away goals rule would not be used, extra time would not be played, and the penalty shoot-out would be used to determine the winners (Regulations Article 18).
For the quarter-finals, teams were seeded based on the table of results of all matches in the competition. The top four seeded teams played the second leg at home.
The four quarter-finals winners were promoted to 2022 Série C.

### Round of 32

The round of 32 was a two-legged knockout tie, with the draw regionalised. The matches were played from 11 to 20 September.

#### Matches

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Moto Club | 4–1 | Castanhal | 2–0 | 2–1 |
| Penarol | 1–3 | 4 de Julho | 1–0 | 0–3 |
| Galvez | 0–2 | Guarany de Sobral | 0–0 | 0–2 |
| Paragominas | 3–1 | São Raimundo | 1–0 | 2–1 |
| Retrô | 3–4 | ABC | 1–1 | 2–3 |
| América de Natal | 3–1 | Itabaiana | 1–1 | 2–0 |
| Atlético Cearense | 1–1 (5–3 p) | Juazeirense | 1–1 | 0–0 |
| Sergipe | 3–3 (2–4 p) | Campinense | 2–2 | 1–1 |
| Caldense | 2–3 | Aparecidense | 1–0 | 1–3 |
| União Rondonópolis | 3–1 | Boa Esporte | 2–0 | 1–1 |
| Brasiliense | 0–1 | Ferroviária | 0–0 | 0–1 |
| Uberlândia | 3–1 | Nova Mutum | 1–1 | 2–0 |
| Caxias | 1–1 (4–1 p) | Portuguesa | 1–0 | 0–1 |
| Cianorte | 3–0 | FC Cascavel | 0–0 | 3–0 |
| Bangu | 2–2 (3–4 p) | Joinville | 1–1 | 1–1 |
| Esportivo | 1–1 (5–4 p) | Santo André | 0–1 | 1–0 |

### Round of 16

The matches were played from 25 September to 3 October.

#### Matches

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| América de Natal | 5–2 | Moto Club | 1–0 | 4–2 |
| 4 de Julho | 1–3 | ABC | 1–1 | 0–2 |
| Campinense | 4–1 | Guarany de Sobral | 2–1 | 2–0 |
| Atlético Cearense | 3–2 | Paragominas | 2–0 | 1–2 |
| Cianorte | 0–1 | Aparecidense | 0–0 | 0–1 |
| Caxias | 4–0 | União Rondonópolis | 2–0 | 2–0 |
| Esportivo | 2–3 | Ferroviária | 1–2 | 1–1 |
| Uberlândia | 2–2 (3–1 p) | Joinville | 1–0 | 1–2 |

### Quarter-finals

The draw for the quarter-finals was seeded based on the table of results of all matches in the competition (except preliminary stage matches) for the qualifying teams. The teams were ranked according to points. If tied on points, the following criteria would be used to determine the ranking: 1. Wins; 2. Goal difference; 3. Goals scored; 4. Fewest red cards; 5. Fewest yellow cards; 6. Draw in the headquarters of the Brazilian Football Confederation (Regulations Article 15).

#### Quarter-finals seedings

| Seed | Team | Pts | W | GD |
| 1 | Ferroviária | 41 | 12 | +21 |
| 2 | ABC | 36 | 11 | +20 |
| 3 | Aparecidense | 35 | 10 | +13 |
| 4 | Campinense | 33 | 9 | +14 |
| 5 | América de Natal | 32 | 9 | +10 |
| 6 | Uberlândia | 30 | 8 | +8 |
| 7 | Caxias | 27 | 7 | +6 |
| 8 | Atlético Cearense | 26 | 7 | +3 |

#### Matches

The matches were played from 9 to 17 October.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Atlético Cearense | 1–1 (4–3 p) | Ferroviária | 1–1 | 0–0 |
| América de Natal | 0–0 (2–4 p) | Campinense | 0–0 | 0–0 |
| Caxias | 0–3 | ABC | 0–0 | 0–3 |
| Uberlândia | 1–2 | Aparecidense | 0–1 | 1–1 |

### Semi-finals

The matches were played from 23 to 31 October.

#### Matches

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Atlético Cearense | 2–4 | Campinense | 1–1 | 1–3 |
| Aparecidense | 4–3 | ABC | 4–2 | 0–1 |

### Finals

The matches were played on 6 and 13 November.

#### Matches

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Campinense | 1–2 | Aparecidense | 0–1 | 1–1 |

## Top goalscorers

| Rank | Player | Team | Goals |
| 1 | Gabriel Santos | Caldense | 13 |
| 2 | Ingro | Uberlândia | 11 |
| 3 | Pecel | Castanhal | 9 |
| 4 | Igor Bahia | Murici | 8 |
| 4 | Michel | Caxias | 8 |
| 4 | Olávio | Atlético Cearense | 8 |
| 4 | Raílson | Penarol | 8 |
| 4 | Robinho | FC Cascavel | 8 |
| 4 | Wallyson | ABC | 8 |
| 10 | Alvinho | América de Natal | 7 |
| 10 | Batista | Esportivo | 7 |
| 10 | Erick Pulga | Atlético Cearense | 7 |
| 10 | Gustavo Henrique | ABC | 7 |
| 10 | Heltinho | União Rondonópolis | 7 |
| 10 | Jackie Chan | Fast Clube | 7 |
| 10 | Léo Itaperuna | FC Cascavel | 7 |
| 10 | Zé Eduardo | Brasiliense | 7 |
Source: CBF