2024–25 Belgian Division 2

{{Infobox football league season

| competition = Belgian Division 2

| season = 2024–25

| dates = 25 August 2024 – 4 May 2025

| winners =

| promoted = VV A: Roeselare
VV B: Houtvenne
ACFF: Crossing Schaerbeek, Habay-la-Neuve, Meux

| relegated = VV A: Dikkelvenne
Jong Westerlo
Olsa Brakel
Voorde-Appelterre
VV B: Esperanza Pelt
Lille
Wezel Sport
ACFF: Eupen U23
La Louvière Centre
Verlaine

| matches = 786

| total goals =

| prevseason = 2023–24

| nextseason = 2025–26

}}

The 2024–25 Belgian Division 2 is scheduled to be the ninth season of the division in its current format, placed at the fourth-tier of football in Belgium.

Team changes

From this season on, the two VV divisions were reduced from 18 to 16 teams, resulting in four fewer teams entering the division than leaving it.

=In=

=Out=

=Division switch=

The initial proposition placed Houtvenne together with Jong Westerlo in the VV B division, with Houtvenne cooperating strongly with Westerlo (having loaned several players over the last few seasons), other clubs objected and insisted Houtvenne and the U23 team of Westerlo would be placed in different division to avoid any probability of matchfixing. As a result, Jong Westerlo moved to the VV A division, swapping places with Jong KV Mechelen.https://www.instagram.com/p/C74Qck9I7xI/

Belgian Division 2 VV A

{{location map+|Belgium|float=right|width=500|caption=Locations of the 2024–25 Belgian Division 2 VV A teams|places=

{{location map~|Belgium|lat=51.0890263 |long=3.7642475 |label=RC Gent |position=left}}

{{location map~|Belgium|lat=50.8399096 |long=3.1976782 |label=Gullegem |position=bottom}}

{{location map~|Belgium|lat=50.8454265 |long=3.3103757 |label=Harelbeke|position=top}}

{{location map~|Belgium|lat=50.9701286 |long=3.541635 |label=Petegem |position=left}}

{{location map~|Belgium|lat=50.9218087 |long=3.6816555 |label=Dikkelvenne |position=right}}

{{location map~|Belgium|lat=51.1 |long=3.983333 |label=Oudenaarde |position=right}}

{{location map~|Belgium|lat=51.1963516 |long=3.8129389 |label=Zelzate |position=left}}

{{location map~|Belgium|lat=50.8032285 |long=3.7734016 |label=Brakel |position=bottom}}

{{location map~|Belgium|lat=51.1550063 |long=3.2429611 |label=Oostkamp |position=top}}

{{location map~|Belgium|lat=51.0706893 |long=3.1063928 |label=Torhout|position=left}}

{{location map~|Belgium|lat=50.883333 |long=3.416667 |label=Jong Essevee|position=right}}

{{location map~|Belgium|lat=50.8282292 |long=3.938175 |label=Voorde-Appelterre |position=bottom}}

{{location map~|Belgium|lat=50.9984805 |long=4.1409135 |label=Lebbeke |position=right}}

{{location map~|Belgium|lat=51.083333 |long=4.916667 |label=Jong Westerlo|position=right}}

{{location map~|Belgium|lat=50.9020455 |long=2.8648014 |label=Roeselare |position=left}}

{{location map~|Belgium|lat=50.8433803 |long=2.8935011 |label=Westhoek |position=left}}

}}

=League table=

{{#invoke:Sports table|main|style=WDL

|section=Division A

|source=[http://vbal4.be/p010221z9.htm vbal4]

|team_order=ROE, OOS, ZEL, HAR, OUD, DIK, ESS, WES, PET, GEN, LEB, JWE, TOR, GUL, BRA, VOO

|result1=PRO |result3=POUP |result4=POUP |result7=POUP |result6=RELP |result12=DIS |result14=PODOWN |result15=REL |result16=REL

|res_col_header=QR

|col_PRO=green1 |text_PRO=Promotion to the 2025–26 Belgian National Division 1

|col_POUP=green2 |text_POUP=Qualification for the Promotion play-offs VV

|col_PODOWN=red2 |text_PODOWN=Qualification for the Relegation play-offs

|col_REL=red1 |text_REL=Relegation to the 2025–26 Belgian Division 3

|col_RELP=red1 |text_RELP=Relegation to the Belgian Provincial Leagues

|col_DIS=red1 |text_DIS=Team discontinued

|status_text_X=Qualified for play-offs as period champions but may still get promoted automatically

|status_ROE=C, P

|status_DIK=R

|status_VOO=R

|status_BRA=R

|status_JWE=R

|update=complete

|win_DIK=13 |draw_DIK=10 |loss_DIK=7 |gf_DIK=56 |ga_DIK=38

|win_GUL=8 |draw_GUL=7 |loss_GUL=15 |gf_GUL=46 |ga_GUL=55

|win_ESS=13 |draw_ESS=3 |loss_ESS=14 |gf_ESS=58 |ga_ESS=48

|win_JWE=9 |draw_JWE=6 |loss_JWE=15 |gf_JWE=40 |ga_JWE=47

|win_LEB=8 |draw_LEB=12 |loss_LEB=10 |gf_LEB=52 |ga_LEB=54

|win_BRA=7 |draw_BRA=7 |loss_BRA=16 |gf_BRA=40 |ga_BRA=65

|win_OOS=17 |draw_OOS=4 |loss_OOS=9 |gf_OOS=55 |ga_OOS=43

|win_OUD=14 |draw_OUD=7 |loss_OUD=9 |gf_OUD=52 |ga_OUD=47

|win_PET=11 |draw_PET=7 |loss_PET=12 |gf_PET=47 |ga_PET=55

|win_GEN=10 |draw_GEN=7 |loss_GEN=13 |gf_GEN=50 |ga_GEN=61

|win_HAR=15 |draw_HAR=9 |loss_HAR=6 |gf_HAR=59 |ga_HAR=44

|win_ROE=20 |draw_ROE=5 |loss_ROE=5 |gf_ROE=53 |ga_ROE=24

|win_TOR=8 |draw_TOR=8 |loss_TOR=14 |gf_TOR=44 |ga_TOR=59

|win_VOO=5 |draw_VOO=3 |loss_VOO=22 |gf_VOO=33 |ga_VOO=67

|win_WES=11 |draw_WES=8 |loss_WES=11 |gf_WES=40 |ga_WES=45

|win_ZEL=15 |draw_ZEL=9 |loss_ZEL=6 |gf_ZEL=70 |ga_ZEL=43

|note_DIK=On December 10, 2024, Dikkelvenne announced that due to financial pressures they had opted to voluntarily relegate back to the Belgian Provincial Leagues{{Cite web |url=https://www.hln.be/sport-in-de-buurt/preses-geert-gevaert-ksc-dikkelvenne-slapeloze-nachten-voor-handvol-fans-dat-wil-ik-niet-meer~a23ce051/ |title=Preses Geert Gevaert (KSC Dikkelvenne): "Slapeloze nachten voor handvol fans, dat wil ik niet meer" |last=Fruyt |first=Hans |date=11 December 2024 |website=Het Laatste Nieuws|access-date=15 December 2024}}

|note_OOS=Oostkamp did not obtain a license for Division 1 and therefore did not qualify for the promotion play-offs.

|note_OUD=Oudenaarde did not obtain a license for Division 1 and therefore did not qualify for the promotion play-offs.

|note_JWE=The parent team K.V.C. Westerlo announced that they would be discontinuing their U23 team at the end of the season.{{Cite web |last=stagiair |date=2025-03-25 |title=Groeien naar een sterkere toekomst |url=https://kvcwesterlo.be/2025/03/25/groeien-naar-een-sterkere-toekomst/ |access-date=2025-04-30 |website=KVC Westerlo |language=nl-NL}}

| name_BRA = Olsa Brakel

| name_DIK = Dikkelvenne

| name_VOO = Voorde-Appelterre

| name_ESS = Jong Essevee

| name_GEN = Racing Gent

| name_GUL = Gullegem

| name_HAR = Harelbeke

| name_OOS = Oostkamp

| name_OUD = Oudenaarde

| name_PET = Petegem

| name_TOR = Torhout

| name_ZEL = Zelzate

| name_LEB = Lebbeke

| name_ROE = Roeselare

| name_WES = Westhoek

| name_JWE = Jong Westerlo

|show_limit=5

|class_rules=1) Points; 2) Matches won; 3) Goal difference; 4) Goals scored; 5) Away matches won; 6) Goal difference in away matches; 7) Away goals scored.{{cite web |url=https://us.soccerway.com/national/belgium/third-division/20202021/vfv-a/r57874/|title=Belgian Second Amateur Division VV A 2020/2021|website=Soccerway|access-date=17 February 2021}}

}}

=Period champions=

  • First period: Roeselare (24 Points)
  • Second period: Roeselare (22 Points)
  • Third period: Oostkamp (26 Points)

=Results=

{{#invoke:sports results|main

| source = [https://www.vbal4.be/p010203z.htm Nationaal : 1st klasse] {{in lang|nl}}

| update = complete

| a_note =

| matches_style = FBR

|team_order=ROE, OOS, ZEL, HAR, OUD, DIK, ESS, WES, PET, GEN, LEB, JWE, TOR, GUL, BRA, VOO

| name_BRA = Olsa Brakel

| name_DIK = Dikkelvenne

| name_VOO = Voorde-Appelterre

| name_ESS = Jong Essevee

| name_GEN = Racing Gent

| name_GUL = Gullegem

| name_HAR = Harelbeke

| name_OOS = Oostkamp

| name_OUD = Oudenaarde

| name_PET = Petegem

| name_TOR = Torhout

| name_ZEL = Zelzate

| name_LEB = Lebbeke

| name_ROE = Roeselare

| name_WES = Westhoek

| name_JWE = Jong Westerlo

|match_ESS_ROE=2–1

|match_GEN_ZEL=0–2

|match_LEB_HAR=2–2

|match_DIK_GUL=0–0

|match_JWE_WES=3–0

|match_BRA_TOR=1–1

|match_VOO_OUD=5–0

|match_PET_OOS=1–2

|match_WES_DIK=1–1

|match_ZEL_PET=5–0

|match_TOR_GEN=1–1

|match_OOS_ESS=3–1

|match_OUD_BRA=3–2

|match_ROE_LEB=2–0

|match_HAR_ZEL=1–0

|match_OUD_WES=2–0

|match_LEB_ESS=1–1

|match_JWE_ROE=0–1

|match_OOS_GEN=3–3

|match_PET_DIK=1–2

|match_BRA_VOO=4–2

|match_GUL_TOR=3–4

|match_ESS_HAR=1–3

|match_TOR_LEB=4–2

|match_DIK_OOS=3–0

|match_GEN_JWE=2–4

|match_WES_BRA=3–0

|match_ZEL_OUD=1–2

|match_VOO_PET=1–2

|match_ROE_GUL=3–2

|match_OUD_ROE=1–3

|match_JWE_VOO=0–1

|match_OOS_WES=0–3

|match_BRA_ESS=1–0

|match_HAR_GEN=1–1

|match_GUL_LEB=1–3

|match_PET_TOR=2–1

|match_ZEL_DIK=2–1

|match_ESS_PET=2–1

|match_LEB_BRA=4–0

|match_DIK_JWE=3–2

|match_TOR_OOS=1–2

|match_GEN_OUD=1–3

|match_ROE_ZEL=3–1

|match_WES_GUL=2–1

|match_VOO_HAR=1–2

|match_GUL_VOO=1–0

|match_HAR_JWE=2–1

|match_OUD_LEB=2–3

|match_JWE_TOR=1–1

|match_BRA_DIK=1–2

|match_GUL_GEN=5–0

|match_ROE_OOS=2–0

|match_HAR_PET=2–2

|match_VOO_ESS=3–2

|match_ZEL_WES=4–0

|match_OOS_BRA=4–5

|match_DIK_VOO=3–0

|match_GEN_LEB=3–3

|match_TOR_ROE=2–3

|match_PET_JWE=3–2

|match_GUL_OUD=1–4

|match_ZEL_ESS=4–1

|match_WES_HAR=2–4

|match_ESS_TOR=3–1

|match_ROE_GEN=1–2

|match_HAR_GUL=5–4

|match_LEB_OOS=1–1

|match_OUD_DIK=2–2

|match_JWE_ZEL=1–1

|match_VOO_WES=0–1

|match_BRA_PET=2–1

|match_OOS_OUD=2–1

|match_TOR_HAR=2–1

|match_DIK_ESS=2–4

|match_GEN_BRA=0–1

|match_GUL_JWE=3–1

|match_PET_LEB=0–0

|match_WES_ROE=0–1

|match_ZEL_VOO=4–2

|match_ESS_GUL=4–0

|match_ROE_PET=2–0

|match_OOS_ZEL=1–2

|match_TOR_WES=0–2

|match_OUD_HAR=2–2

|match_GEN_DIK=3–3

|match_LEB_VOO=0–4

|match_BRA_JWE=3–1

|match_OUD_TOR=4–1

|match_JWE_ESS=0–1

|match_ZEL_BRA=5–1

|match_VOO_ROE=0–0

|match_HAR_DIK=4–3

|match_GUL_OOS=2–1

|match_PET_GEN=3–2

|match_WES_LEB=0–0

|match_ESS_OUD=2–0

|match_OOS_JWE=3–0

|match_TOR_VOO=1–1

|match_LEB_ZEL=1–1

|match_GEN_WES=0–3

|match_PET_GUL=2–1

|match_BRA_HAR=1–1

|match_DIK_ROE=1–0

|match_OUD_PET=1–3

|match_LEB_JWE=1–1

|match_TOR_DIK=2–1

|match_VOO_GEN=3–2

|match_GUL_ZEL=1–4

|match_WES_ESS=2–2

|match_HAR_OOS=3–2

|match_ROE_BRA=3–0

|match_ESS_GEN=2–1

|match_OOS_VOO=4–0

|match_DIK_LEB=2–2

|match_JWE_OUD=0–1

|match_ZEL_TOR=4–0

|match_HAR_ROE=0–4

|match_PET_WES=1–1

|match_BRA_GUL=0–0

|match_LEB_OUD=1–3

|match_GEN_TOR=2–2

|match_JWE_PET=2–0

|match_VOO_BRA=0–3

|match_DIK_ZEL=2–0

|match_WES_OOS=0–1

|match_GUL_HAR=0–2

|match_ROE_ESS=2–1

|match_ZEL_ROE=3–2

|match_ESS_DIK=2–0

|match_OUD_GUL=1–0

|match_TOR_JWE=0–1

|match_OOS_LEB=5–3

|match_HAR_WES=3–0

|match_DIK_BRA=1–0

|match_GEN_OOS=2–1

|match_LEB_PET=1–1

|match_JWE_HAR=0–1

|match_VOO_ZEL=3–3

|match_ROE_TOR=2–1

|match_WES_OUD=2–0

|match_GUL_ESS=3–1

|match_ESS_JWE=1–2

|match_OUD_OOS=3–1

|match_LEB_WES=1–2

|match_GEN_ROE=1–3

|match_VOO_DIK=0–5

|match_BRA_ZEL=2–2

|match_PET_HAR=1–4

|match_TOR_GUL=1–1

|match_OOS_TOR=1–0

|match_DIK_OUD=2–0

|match_HAR_LEB=2–3

|match_JWE_BRA=3–2

|match_PET_ESS=4–3

|match_WES_VOO=1–0

|match_GUL_ROE=0–1

|match_ZEL_GEN=3–1

|match_ESS_OOS=0–1

|match_TOR_PET=0–3

|match_DIK_WES=4–0

|match_GEN_HAR=1–0

|match_ZEL_GUL=1–1

|match_VOO_LEB=0–2

|match_BRA_OUD=2–2

|match_ROE_JWE=2–1

|match_PET_VOO=1–0

|match_BRA_GEN=1–2

|match_OOS_ROE=1–0

|match_LEB_GEN=1–2

|match_OUD_ESS=1–0

|match_TOR_BRA=3–1

|match_PET_ZEL=1–2

|match_GUL_DIK=0–0

|match_HAR_VOO=2–0

|match_WES_JWE=1–2

|match_ESS_LEB=6–1

|match_GEN_PET=4–0

|match_JWE_OOS=1–1

|match_ROE_OUD=2–0

|match_VOO_GUL=1–4

|match_ZEL_HAR=0–0

|match_BRA_WES=2–2

|match_DIK_TOR=1–1

|match_ROE_VOO=3–2

|match_OUD_JWE=2–1

|match_OOS_PET=2–1

|match_TOR_ZEL=1–4

|match_LEB_DIK=1–3

|match_WES_GEN=1–0

|match_HAR_ESS=2–1

|match_GUL_BRA=2–1

|match_ESS_WES=1–1

|match_DIK_HAR=2–2

|match_GEN_GUL=3–2

|match_PET_OUD=1–1

|match_ZEL_OOS=2–4

|match_BRA_ROE=0–2

|match_ESS_ZEL=1–2

|match_OUD_VOO=3–1

|match_OOS_GUL=2–1

|match_LEB_TOR=1–2

|match_JWE_GEN=1–2

|match_ROE_DIK=0–0

|match_HAR_BRA=4–1

|match_WES_PET=3–4

|match_TOR_OUD=2–2

|match_GEN_ESS=4–3

|match_DIK_PET=2–4

|match_GUL_WES=2–2

|match_BRA_OOS=1–3

|match_ROE_HAR=1–1

|match_ZEL_LEB=1–3

|match_VOO_JWE=0–1

|match_ESS_VOO=5–0

|match_OOS_DIK=2–0

|match_OUD_GEN=1–1

|match_LEB_ROE=1–1

|match_HAR_TOR=1–2

|match_PET_BRA=2–2

|match_WES_ZEL=2–2

|match_JWE_GUL=3–1

|match_JWE_LEB=0–3

|match_VOO_TOR=2–3

|match_TOR_ESS=2–3

|match_DIK_GEN=3–0

|match_HAR_OUD=1–3

|match_GUL_PET=2–1

|match_VOO_OOS=0–1

|match_ZEL_JWE=3–3

|match_BRA_LEB=0–5

|match_ROE_WES=2–0

|match_GEN_VOO=4–1

|match_OOS_HAR=1–1

|match_LEB_GUL=2–2

|match_WES_TOR=3–2

|match_JWE_DIK=2–2

|match_ESS_BRA=2–0

|match_OUD_ZEL=2–2

|match_PET_ROE=1–1

}}

Belgian Division 2 VV B

{{location map+|Belgium|float=right|width=500|caption=Locations of the 2024–25 Belgian Division 2 VV B teams|places=

{{location map~|Belgium|lat=51.1680466 |long=5.5697905 |label=Bocholt |position=right}}

{{location map~|Belgium|lat=50.9626198 |long=5.3610648 |label=Hades |position=right}}

{{location map~|Belgium|lat=51.1877334 |long=4.4398369 |label=Berchem |position=left}}

{{location map~|Belgium|lat=50.8908928 |long=4.4335308 |label=Diegem |position=bottom}}

{{location map~|Belgium|lat=50.7831457 |long=5.5183681 |label=Tongeren |position=bottom}}

{{location map~|Belgium|lat=51.2397093 |long=4.8123721 |label=Lille |position=left}}

{{location map~|Belgium|lat=51.03852 |long=4.4717048 |label=KRC Mechelen |position=left}}

{{location map~|Belgium|lat=51.1037322 |long=4.3736179 |label=Rupel Boom |position=left}}

{{location map~|Belgium|lat=51.0435347 |long=4.8109751 |label=Houtvenne |position=bottom}}

{{location map~|Belgium|lat=51.1983408 |long=5.222937 |label=Wezel |position=left}}

{{location map~|Belgium|lat=51.215911 |long=5.4476936 |label=Pelt |position=right}}

{{location map~|Belgium|lat=50.9434217 |long=5.4690495 |label=Termien |position=right}}

{{location map~|Belgium|lat=50.8523135 |long=5.3494598 |label=Wellen |position=right}}

{{location map~|Belgium|lat=51.12868 |long=5.06741 |label=Berg en Dal |position=left}}

{{location map~|Belgium|lat=50.833333 |long=5.2 |label=Jong STVV |position=left}}

{{location map~|Belgium|lat=51.056667 |long=4.386667 |label=Jong KV Mechelen |position=right}}

}}

=League table=

{{#invoke:Sports table|main|style=WDL

|section=Division B

|source=[http://vbal4.be/p010222.htm vbal4]

|team_order=HOU, RUP, DIE, TER, KVM, RCM, HAD, BED, STR, BER, TON, WEL, BOC, LIL, PEL, WEZ

|result1=PRO |result2=POUP |result3=POUP |result6=POUP |result5=POUP |result14=PODOWN |result15=REL |result16=REL

|res_col_header=QR

|col_PRO=green1 |text_PRO=Promotion to the 2025–26 Belgian National Division 1

|col_POUP=green2 |text_POUP=Qualification for the Promotion play-offs VV

|col_PODOWN=red2 |text_PODOWN=Qualification for the Relegation play-offs

|col_REL=red1 |text_REL=Relegation to the 2025–26 Belgian Division 3

|status_text_Y=Qualified for play-offs but may still be promoted automatically

|status_text_Z=Can at best reach relegation play-offs but may still be relegated automatically

|status_HOU=C, P

|status_LIL=R

|status_WEZ=R

|status_PEL=R

|update=complete

|win_BER=8 |draw_BER=10 |loss_BER=12 |gf_BER=37 |ga_BER=49

|win_BED=12 |draw_BED=5 |loss_BED=13 |gf_BED=42 |ga_BED=48

|win_BOC=8 |draw_BOC=7 |loss_BOC=15 |gf_BOC=50 |ga_BOC=59

|win_DIE=18 |draw_DIE=8 |loss_DIE=4 |gf_DIE=66 |ga_DIE=33

|win_TER=14 |draw_TER=6 |loss_TER=10 |gf_TER=59 |ga_TER=49

|win_PEL=6 |draw_PEL=11 |loss_PEL=13 |gf_PEL=35 |ga_PEL=45

|win_HAD=13 |draw_HAD=5 |loss_HAD=12 |gf_HAD=40 |ga_HAD=42

|win_HOU=19 |draw_HOU=8 |loss_HOU=3 |gf_HOU=69 |ga_HOU=27

|win_KVM=13 |draw_KVM=7 |loss_KVM=10 |gf_KVM=56 |ga_KVM=44

|win_STR=8 |draw_STR=10 |loss_STR=12 |gf_STR=50 |ga_STR=43

|win_LIL=9 |draw_LIL=3 |loss_LIL=18 |gf_LIL=40 |ga_LIL=67

|win_RCM=12 |draw_RCM=10 |loss_RCM=8 |gf_RCM=47 |ga_RCM=45

|win_RUP=19 |draw_RUP=8 |loss_RUP=3 |gf_RUP=53 |ga_RUP=20

|win_TON=8 |draw_TON=8 |loss_TON=14 |gf_TON=27 |ga_TON=41

|win_WEL=8 |draw_WEL=8 |loss_WEL=14 |gf_WEL=37 |ga_WEL=56

|win_WEZ=4 |draw_WEZ=8 |loss_WEZ=18 |gf_WEZ=38 |ga_WEZ=78

|note_TER=Termien did not apply for a Division 1 license and therefore did not qualify for the promotion play-offs.

| name_BER = Berchem

| name_RUP = Rupel Boom

| name_BOC = Bocholt

| name_DIE = Diegem

| name_HAD = Hades

| name_LIL = Lille

| name_RCM = Racing Mechelen

| name_HOU = Houtvenne

| name_TON = Tongeren

| name_WEZ = Wezel

| name_TER = Termien

| name_WEL = Wellen

| name_BED = Berg en Dal

| name_PEL = Pelt

| name_STR = Jong STVV

| name_KVM = Jong KV Mechelen

|show_limit=5

|class_rules=1) Points; 2) Matches won; 3) Goal difference; 4) Goals scored; 5) Away matches won; 6) Goal difference in away matches; 7) Away goals scored.{{cite web |url=https://us.soccerway.com/national/belgium/third-division/20202021/vfv-a/r57874/|title=Belgian Second Amateur Division VV A 2020/2021|website=Soccerway|access-date=17 February 2021}}

}}

=Period champions=

=Results=

{{#invoke:sports results|main

| source = [https://www.vbal4.be/p010203z.htm Nationaal : 1st klasse] {{in lang|nl}}

| update = complete

| a_note =

| matches_style = FBR

|team_order=HOU, RUP, DIE, TER, KVM, RCM, HAD, BED, STR, BER, TON, WEL, BOC, LIL, PEL, WEZ

| name_BER = Berchem

| name_RUP = Rupel Boom

| name_BOC = Bocholt

| name_DIE = Diegem

| name_HAD = Hades

| name_LIL = Lille

| name_RCM = Racing Mechelen

| name_HOU = Houtvenne

| name_TON = Tongeren

| name_WEZ = Wezel

| name_TER = Termien

| name_WEL = Wellen

| name_BED = Berg en Dal

| name_PEL = Pelt

| name_STR = Jong STVV

| name_KVM = Jong KV Mechelen

|match_LIL_STR=2–0

|match_HAD_BER=0–0

|match_TON_RCM=1–2

|match_WEL_BOC=1–0

|match_KVM_PEL=1–0

|match_BED_WEZ=1–4

|match_TER_HOU=2–3

|match_RUP_DIE=4–1

|match_HOU_LIL=4–0

|match_WEZ_WEL=3–1

|match_PEL_TON=0–0

|match_RCM_TER=3–3

|match_BER_KVM=2–2

|match_STR_RUP=0–0

|match_BOC_HAD=2–0

|match_DIE_BED=4–1

|match_HAD_WEZ=1–0

|match_PEL_HOU=1–1

|match_RCM_BER=3–0

|match_WEL_BED=4–0

|match_BOC_STR=1–1

|match_TER_TON=2–1

|match_RUP_KVM=4–0

|match_DIE_LIL=1–0

|match_WEZ_PEL=2–2

|match_KVM_DIE=2–2

|match_BER_TER=2–1

|match_TON_RUP=1–1

|match_LIL_HAD=0–2

|match_HOU_WEL=4–1

|match_BED_BOC=1–1

|match_STR_RCM=2–3

|match_HAD_TON=2–1

|match_RCM_WEZ=2–1

|match_PEL_WEL=2–2

|match_BOC_LIL=6–3

|match_STR_KVM=1–1

|match_RUP_HOU=3–1

|match_DIE_BER=1–1

|match_TER_BED=2–3

|match_WEZ_STR=1–1

|match_HOU_DIE=1–2

|match_KVM_HAD=0–0

|match_BER_PEL=0–2

|match_TON_BOC=0–0

|match_LIL_RCM=0–0

|match_WEL_TER=1–2

|match_BED_RUP=1–2

|match_TER_KVM=1–2

|match_HAD_HOU=1–2

|match_WEZ_DIE=0–1

|match_PEL_LIL=2–1

|match_TON_BED=1–1

|match_RCM_WEL=2–1

|match_BOC_RUP=1–2

|match_STR_BER=1–1

|match_STR_BED=4–1

|match_LIL_WEL=3–0

|match_KVM_TON=0–1

|match_BER_BOC=1–2

|match_HOU_WEZ=4–0

|match_PEL_RCM=0–1

|match_DIE_TER=2–3

|match_RUP_HAD=0–3

|match_WEZ_LIL=0–2

|match_HAD_STR=2–0

|match_WEL_DIE=1–3

|match_TON_BER=0–1

|match_BOC_PEL=2–1

|match_BED_HOU=1–5

|match_RCM_KVM=1–1

|match_TER_RUP=0–2

|match_HOU_BOC=4–1

|match_LIL_TER=2–2

|match_PEL_HAD=2–2

|match_BER_WEZ=0–2

|match_KVM_BED=3–1

|match_RUP_WEL=4–0

|match_STR_TON=0–1

|match_DIE_RCM=0–0

|match_WEZ_RUP=1–1

|match_HOU_BER=2–0

|match_RCM_BOC=2–2

|match_WEL_TON=1–0

|match_BED_PEL=1–0

|match_TER_HAD=1–0

|match_LIL_KVM=1–4

|match_DIE_STR=2–0

|match_HAD_BED=0–2

|match_PEL_DIE=0–1

|match_RCM_HOU=0–0

|match_TON_WEZ=1–0

|match_BOC_KVM=3–0

|match_BER_WEL=3–1

|match_RUP_LIL=2–0

|match_STR_TER=3–4

|match_WEL_STR=2–1

|match_HOU_TON=1–1

|match_LIL_BER=1–3

|match_KVM_WEZ=5–1

|match_BED_RCM=0–1

|match_RUP_PEL=2–0

|match_DIE_HAD=3–1

|match_TER_BOC=6–1

|match_WEZ_TER=0–5

|match_BER_BED=1–1

|match_TON_LIL=4–2

|match_WEL_HAD=1–2

|match_PEL_STR=0–2

|match_RCM_RUP=0–2

|match_BOC_DIE=1–1

|match_HOU_KVM=1–1

|match_HAD_RCM=3–1

|match_BOC_WEZ=3–3

|match_KVM_WEL=0–0

|match_STR_HOU=2–1

|match_RUP_BER=1–2

|match_BED_LIL=2–0

|match_DIE_TON=0–1

|match_TER_PEL=3–1

|match_WEZ_BED=0–2

|match_HAD_RUP=0–1

|match_PEL_BOC=1–1

|match_LIL_HOU=1–1

|match_WEL_RCM=1–3

|match_BER_DIE=3–4

|match_TON_TER=0–0

|match_KVM_STR=3–2

|match_WEZ_HOU=1–2

|match_HAD_BOC=2–1

|match_PEL_BED=2–0

|match_BER_RCM=1–1

|match_WEL_RUP=0–0

|match_TON_STR=3–1

|match_KVM_TER=5–1

|match_LIL_DIE=0–6

|match_WEL_BER=1–1

|match_HOU_PEL=3–1

|match_RCM_DIE=1–2

|match_TON_KVM=1–3

|match_LIL_WEZ=3–2

|match_RUP_BOC=2–1

|match_BED_HAD=3–0

|match_DIE_HOU=1–1

|match_HAD_TER=1–2

|match_PEL_WEZ=2–2

|match_BER_TON=0–1

|match_BOC_WEL=1–2

|match_STR_LIL=8–3

|match_KVM_RCM=3–0

|match_RUP_BED=0–1

|match_WEZ_HAD=1–1

|match_TON_WEL=1–0

|match_HOU_RUP=1–1

|match_LIL_BOC=0–2

|match_KVM_BER=4–1

|match_BED_DIE=0–1

|match_TER_RCM=3–1

|match_STR_PEL=0–0

|match_TER_LIL=2–0

|match_BED_KVM=3–0

|match_HOU_HAD=1–0

|match_RCM_PEL=2–2

|match_BOC_BER=2–3

|match_DIE_WEL=1–1

|match_STR_WEZ=3–0

|match_RUP_TON=3–1

|match_HOU_TER=4–0

|match_PEL_KVM=3–2

|match_BER_HAD=2–3

|match_BOC_TON=4–0

|match_WEL_LIL=2–1

|match_RCM_BED=1–3

|match_DIE_WEZ=9–1

|match_RUP_STR=2–2

|match_HAD_DIE=1–3

|match_TER_STR=1–1

|match_WEZ_RCM=1–3

|match_LIL_RUP=0–3

|match_TON_PEL=1–2

|match_KVM_HOU=1–2

|match_BED_WEL=2–2

|match_TER_BER=4–0

|match_STR_BOC=4–0

|match_WEZ_TON=2–2

|match_HOU_STR=2–0

|match_RCM_HAD=1–1

|match_BOC_BED=0–4

|match_WEL_KVM=2–1

|match_PEL_TER=1–1

|match_BER_LIL=0–2

|match_DIE_RUP=0–1

|match_HAD_WEL=4–2

|match_TON_HOU=0–2

|match_LIL_PEL=4–0

|match_KVM_BOC=3–0

|match_STR_DIE=1–1

|match_BED_BER=1–2

|match_RUP_RCM=0–0

|match_TER_WEZ=0–2

|match_WEZ_KVM=1–4

|match_HAD_LIL=4–0

|match_BER_RUP=1–1

|match_RCM_TON=3–0

|match_WEL_HOU=1–1

|match_BOC_TER=2–4

|match_BED_STR=0–1

|match_DIE_PEL=3–2

|match_WEZ_BOC=0–6

|match_TON_HAD=0–1

|match_PEL_BER=1–1

|match_HOU_RCM=6–2

|match_LIL_BED=1–2

|match_KVM_RUP=1–2

|match_STR_WEL=1–2

|match_TER_DIE=1–1

|match_DIE_KVM=3–0

|match_HAD_PEL=2–1

|match_WEL_WEZ=4–4

|match_RCM_LIL=2–3

|match_BER_STR=0–0

|match_BED_TON=1–1

|match_BOC_HOU=1–3

|match_RUP_TER=2–0

|match_WEZ_BER=2–4

|match_HOU_BED=4–0

|match_TON_DIE=2–4

|match_PEL_RUP=0–2

|match_BOC_RCM=1–2

|match_KVM_LIL=1–3

|match_TER_WEL=2–0

|match_STR_HAD=6–0

|match_BED_TER=3–1

|match_RUP_WEZ=3–1

|match_DIE_BOC=3–2

|match_RCM_STR=4–2

|match_HAD_KVM=1–3

|match_BER_HOU=1–2

|match_WEL_PEL=0–4

|match_LIL_TON=2–0

}}

Belgian Division 2 ACFF

{{location map+|Belgium|float=right|width=500|caption=Locations of the 2024–25 Belgian Division 2 ACFF teams|places=

{{location map~|Belgium|lat=50.7291861 |long=3.8510953 |label=A-Lessines |position=left}}

{{location map~|Belgium|lat=50.5529362 |long=4.7963247 |label=Meux |position=left}}

{{location map~|Belgium|lat=50.6082707 |long=5.323259 |label=Verlaine |position=left}}

{{location map~|Belgium|lat=50.881277 |long=4.3007081 |label=Ganshoren |position=left}}

{{location map~|Belgium|lat=50.8853152 |long=4.3132048 |label=Jette |position=top}}

{{location map~|Belgium|lat=50.4781823 |long=4.2006926 |label=La Louvière |position=left}}

{{location map~|Belgium|lat=50.7134465 |long=6.0156451 |label=La Calamine |position=top}}

{{location map~|Belgium|lat=50.4994994 |long=4.2430201 |label=Manage |position=top}}

{{location map~|Belgium|lat=50.2418602 |long=4.8487377 |label=Onhaye |position=left}}

{{location map~|Belgium|lat=50.6764535 |long=3.7558599 |label=Ostiches-Ath |position=bottom}}

{{location map~|Belgium|lat=50.8663825 |long=4.3825797 |label=Schaerbeek |position=right}}

{{location map~|Belgium|lat=50.60063 |long=5.50426 |label=Seraing B |position=top}}

{{location map~|Belgium|lat=50.6023548 |long=5.8423585 |label=Verviers |position=top}}

{{location map~|Belgium|lat=50.633333 |long=6.033333 |label=Eupen U23 |position=bottom}}

{{location map~|Belgium|lat=50.4789403 |long=5.6937978 |label=Aywaille |position=bottom}}

{{location map~|Belgium|lat=50.5316785 |long=5.2604755 |label=Union Hutoise |position=bottom}}

{{location map~|Belgium|lat=49.7345834 |long=5.6545523 |label=Habay-la-Neuve |position=left}}

{{location map~|Belgium|lat=50.6790924 |long=6.125855 |label=Raeren-Eynatten |position=right}}

}}

=League table=

{{#invoke:Sports table|main|style=WDL

|section=ACFF

|source=[https://vbal4.be/p010267.htm vbal4]

|team_order=SCH, MEU, ONH, HAB, A-L, SVE, R-E, LAC, SER, JET, MAN, AYW, GAN, HUT, O-A, VER, LAL, EUP

|result1=PRO |result2=POUP |result3=POUP |result4=POUP |result6=POUP |result16=REL |result17=REL |result18=REL

|res_col_header=QR

|col_PRO=green1 |text_PRO=Promotion to the 2025–26 Belgian National Division 1

|col_POUP=green2 |text_POUP=Qualification for the Promotion play-offs ACFF

|col_REL=red1 |text_REL=Relegation to the 2025–26 Belgian Division 3

|status_text_X=Qualified for play-offs as period champions but may still be promoted automatically

|status_SVE=

|status_HAB=P

|status_MEU=P

|status_ONH=

|status_SCH=C,P

|status_EUP=R

|status_LAL=R

|status_VER=R

|update=complete

|win_A-L=16 |draw_A-L=9 |loss_A-L=9 |gf_A-L=53 |ga_A-L=39

|win_AYW=12 |draw_AYW=6 |loss_AYW=16 |gf_AYW=48 |ga_AYW=55

|win_EUP=6 |draw_EUP=6 |loss_EUP=22 |gf_EUP=38 |ga_EUP=67

|win_GAN=10 |draw_GAN=11 |loss_GAN=13 |gf_GAN=45 |ga_GAN=49

|win_HAB=18 |draw_HAB=6 |loss_HAB=10 |gf_HAB=49 |ga_HAB=30

|win_HUT=9 |draw_HUT=10 |loss_HUT=15 |gf_HUT=47 |ga_HUT=54

|win_JET=11 |draw_JET=11 |loss_JET=12 |gf_JET=40 |ga_JET=49

|win_LAC=14 |draw_LAC=8 |loss_LAC=12 |gf_LAC=55 |ga_LAC=45

|win_LAL=6 |draw_LAL=7 |loss_LAL=21 |gf_LAL=39 |ga_LAL=67

|win_MAN=12 |draw_MAN=7 |loss_MAN=15 |gf_MAN=47 |ga_MAN=62

|win_MEU=21 |draw_MEU=9 |loss_MEU=4 |gf_MEU=68 |ga_MEU=31

|win_ONH=19 |draw_ONH=7 |loss_ONH=8 |gf_ONH=51 |ga_ONH=33

|win_O-A=9 |draw_O-A=8 |loss_O-A=17 |gf_O-A=40 |ga_O-A=57

|win_R-E=15 |draw_R-E=7 |loss_R-E=12 |gf_R-E=37 |ga_R-E=36

|win_SCH=22 |draw_SCH=10 |loss_SCH=2 |gf_SCH=61 |ga_SCH=27

|win_SER=12 |draw_SER=8 |loss_SER=14 |gf_SER=45 |ga_SER=51

|win_SVE=15 |draw_SVE=8 |loss_SVE=11 |gf_SVE=43 |ga_SVE=32

|win_VER=8 |draw_VER=4 |loss_VER=22 |gf_VER=41 |ga_VER=63

| name_A-L = Acren-Lessines

| name_SVE = Verviers

| name_GAN = Ganshoren

| name_JET = Jette

| name_LAL = La Louvière Centre

| name_MEU = Meux

| name_LAC = La Calamine

| name_VER = Verlaine

| name_MAN = Manageoise

| name_ONH = Onhaye

| name_O-A = Ostiches-Ath

| name_SCH = Crossing Schaerbeek

| name_AYW = Aywaille

| name_HAB = Habay-la-Neuve

| name_HUT = Union Hutoise

| name_R-E = Raeren-Eynatten

| name_SER = Seraing B

| name_EUP = Eupen U23

|note_A-L=Acren-Lessines did not obtain a license for Division 1 and therefore did not qualify for the promotion play-offs.

|show_limit=5

|class_rules=1) Points; 2) Matches won; 3) Goal difference; 4) Goals scored; 5) Away matches won; 6) Goal difference in away matches; 7) Away goals scored.{{cite web |url=https://us.soccerway.com/national/belgium/third-division/20202021/acff/r57873/|title=Belgian Second Amateur Division ACFF 2020/2021|website=Soccerway|access-date=17 February 2021}}

}}

= Period champions =

  • First period: Meux (24 Points)
  • Second period: Crossing Schaerbeek (26 Points)
  • Third period: Crossing Schaerbeek (28 Points)

=Results=

{{#invoke:sports results|main

| source = [https://vbal4.be/p010267.htm vbal4] {{in lang|nl}}

| update = complete

| a_note =

| matches_style = FBR

|team_order=SCH, MEU, ONH, HAB, A-L, VEV, R-E, LAC, SER, JET, MAN, AYW, GAN, HUY, O-A, VER, LAL, EUP

| name_A-L = Acren-Lessines

| name_VEV = Verviers

| name_GAN = Ganshoren

| name_JET = Jette

| name_LAL = La Louvière Centre

| name_MEU = Meux

| name_LAC = La Calamine

| name_VER = Verlaine

| name_MAN = Manageoise

| name_ONH = Onhaye

| name_O-A = Ostiches-Ath

| name_SCH = Crossing Schaerbeek

| name_AYW = Aywaille

| name_HAB = Habay-la-Neuve

| name_HUY = Union Hutoise

| name_R-E = Raeren-Eynatten

| name_SER = Seraing B

| name_EUP = Eupen U23

|match_A-L_AYW=3–2

|match_A-L_EUP=2–0

|match_A-L_GAN=1–1

|match_A-L_HAB=0–1

|match_A-L_HUY=3–2

|match_A-L_JET=0–1

|match_A-L_LAC=0–2

|match_A-L_LAL=5–1

|match_A-L_MAN=2–3

|match_A-L_MEU=2–1

|match_A-L_O-A=2–1

|match_A-L_ONH=4–1

|match_A-L_R-E=0–0

|match_A-L_SCH=1–1

|match_A-L_SER=0–2

|match_A-L_VER=2–1

|match_A-L_VEV=1–0

|match_AYW_A-L=0–0

|match_AYW_EUP=1–0

|match_AYW_GAN=4–0

|match_AYW_HAB=1–3

|match_AYW_HUY=2–2

|match_AYW_JET=2–2

|match_AYW_LAC=3–1

|match_AYW_LAL=3–2

|match_AYW_MAN=3–0

|match_AYW_MEU=2–2

|match_AYW_O-A=1–2

|match_AYW_ONH=0–1

|match_AYW_R-E=1–4

|match_AYW_SCH=1–2

|match_AYW_SER=2–1

|match_AYW_VER=1–2

|match_AYW_VEV=0–1

|match_EUP_A-L=2–3

|match_EUP_AYW=2–3

|match_EUP_GAN=3–2

|match_EUP_HAB=1–4

|match_EUP_HUY=1–1

|match_EUP_JET=1–3

|match_EUP_LAC=2–3

|match_EUP_LAL=2–2

|match_EUP_MAN=1–1

|match_EUP_MEU=1–3

|match_EUP_O-A=2–1

|match_EUP_R-E=0–3

|match_EUP_ONH=1–3

|match_EUP_SCH=2–3

|match_EUP_SER=0–2

|match_EUP_VER=3–2

|match_EUP_VEV=0–2

|match_GAN_A-L=0–0

|match_GAN_AYW=4–1

|match_GAN_EUP=1–4

|match_GAN_HAB=1–1

|match_GAN_HUY=2–0

|match_GAN_JET=1–3

|match_GAN_LAC=0–2

|match_GAN_LAL=2–0

|match_GAN_MAN=2–0

|match_GAN_MEU=0–1

|match_GAN_O-A=0–1

|match_GAN_ONH=1–1

|match_GAN_R-E=3–0

|match_GAN_SCH=0–1

|match_GAN_SER=1–2

|match_GAN_VER=1–2

|match_GAN_VEV=1–1

|match_HAB_A-L=1–0

|match_HAB_AYW=0–1

|match_HAB_EUP=0–1

|match_HAB_GAN=0–1

|match_HAB_HUY=4–2

|match_HAB_JET=3–1

|match_HAB_LAC=2–0

|match_HAB_LAL=2–2

|match_HAB_MAN=1–0

|match_HAB_MEU=0–2

|match_HAB_O-A=1–2

|match_HAB_ONH=1–0

|match_HAB_R-E=1–0

|match_HAB_SCH=0–1

|match_HAB_SER=2–0

|match_HAB_VER=1–0

|match_HAB_VEV=1–1

|match_HUY_A-L=0–3

|match_HUY_AYW=2–0

|match_HUY_EUP=1–1

|match_HUY_GAN=2–3

|match_HUY_HAB=1–1

|match_HUY_JET=2–1

|match_HUY_LAC=2–4

|match_HUY_LAL=3–1

|match_HUY_MAN=3–0

|match_HUY_MEU=1–1

|match_HUY_O-A=2–2

|match_HUY_ONH=1–1

|match_HUY_R-E=0–0

|match_HUY_SCH=3–1

|match_HUY_SER=2–0

|match_HUY_VER=1–2

|match_HUY_VEV=1–2

|match_JET_A-L=0–3

|match_JET_AYW=1–0

|match_JET_EUP=1–1

|match_JET_GAN=0–0

|match_JET_HAB=1–1

|match_JET_HUY=0–1

|match_JET_LAC=2–1

|match_JET_LAL=2–1

|match_JET_MAN=1–1

|match_JET_MEU=1–1

|match_JET_O-A=2–1

|match_JET_ONH=0–1

|match_JET_R-E=2–0

|match_JET_SCH=0–3

|match_JET_SER=2–1

|match_JET_VER=3–2

|match_JET_VEV=0–1

|match_LAC_A-L=0–0

|match_LAC_AYW=2–0

|match_LAC_EUP=1–0

|match_LAC_GAN=0–3

|match_LAC_HAB=0–1

|match_LAC_HUY=1–1

|match_LAC_JET=2–1

|match_LAC_LAL=5–2

|match_LAC_MAN=4–0

|match_LAC_MEU=3–0

|match_LAC_O-A=1–1

|match_LAC_ONH=1–2

|match_LAC_R-E=3–1

|match_LAC_SCH=0–2

|match_LAC_SER=2–2

|match_LAC_VER=6–1

|match_LAC_VEV=0–0

|match_LAL_A-L=1–3

|match_LAL_AYW=0–2

|match_LAL_EUP=2–1

|match_LAL_GAN=2–4

|match_LAL_HAB=0–0

|match_LAL_HUY=0–0

|match_LAL_JET=1–4

|match_LAL_LAC=0–1

|match_LAL_MAN=3–2

|match_LAL_MEU=1–2

|match_LAL_O-A=4–1

|match_LAL_ONH=0–3

|match_LAL_R-E=0–1

|match_LAL_SCH=0–1

|match_LAL_SER=1–1

|match_LAL_VER=3–1

|match_LAL_VEV=0–2

|match_MAN_A-L=1–2

|match_MAN_AYW=4–1

|match_MAN_EUP=2–1

|match_MAN_GAN=2–2

|match_MAN_HAB=2–5

|match_MAN_HUY=2–1

|match_MAN_JET=1–1

|match_MAN_LAC=2–2

|match_MAN_LAL=1–1

|match_MAN_MEU=0–0

|match_MAN_O-A=2–3

|match_MAN_ONH=2–1

|match_MAN_R-E=0–2

|match_MAN_SCH=0–5

|match_MAN_SER=6–2

|match_MAN_VER=3–0

|match_MAN_VEV=1–2

|match_MEU_A-L=1–1

|match_MEU_AYW=2–1

|match_MEU_EUP=5–1

|match_MEU_GAN=4–2

|match_MEU_HAB=2–1

|match_MEU_HUY=3–1

|match_MEU_JET=2–0

|match_MEU_LAC=2–1

|match_MEU_LAL=2–0

|match_MEU_MAN=4–0

|match_MEU_O-A=3–1

|match_MEU_ONH=0–1

|match_MEU_R-E=4–3

|match_MEU_SCH=1–1

|match_MEU_SER=5–0

|match_MEU_VER=3–0

|match_MEU_VEV=3–0

|match_O-A_A-L=1–2

|match_O-A_AYW=2–1

|match_O-A_EUP=3–2

|match_O-A_GAN=1–2

|match_O-A_HAB=1–2

|match_O-A_HUY=1–0

|match_O-A_JET=0–0

|match_O-A_LAC=1–3

|match_O-A_LAL=3–1

|match_O-A_MAN=0–1

|match_O-A_MEU=1–1

|match_O-A_ONH=0–1

|match_O-A_R-E=0–1

|match_O-A_SCH=1–2

|match_O-A_SER=0–0

|match_O-A_VER=3–3

|match_O-A_VEV=1–0

|match_ONH_A-L=4–1

|match_ONH_AYW=1–2

|match_ONH_EUP=1–2

|match_ONH_GAN=2–0

|match_ONH_HAB=2–1

|match_ONH_HUY=2–1

|match_ONH_JET=2–1

|match_ONH_LAC=1–1

|match_ONH_LAL=1–0

|match_ONH_MAN=3–1

|match_ONH_MEU=0–0

|match_ONH_O-A=1–1

|match_ONH_R-E=3–0

|match_ONH_SCH=2–3

|match_ONH_SER=2–1

|match_ONH_VER=2–1

|match_ONH_VEV=2–1

|match_R-E_A-L=2–1

|match_R-E_AYW=1–1

|match_R-E_EUP=2–0

|match_R-E_GAN=1–1

|match_R-E_HAB=0–2

|match_R-E_HUY=1–4

|match_R-E_JET=0–0

|match_R-E_LAC=2–0

|match_R-E_LAL=2–0

|match_R-E_MAN=0–1

|match_R-E_MEU=1–0

|match_R-E_O-A=0–0

|match_R-E_ONH=0–0

|match_R-E_SCH=0–3

|match_R-E_SER=2–0

|match_R-E_VER=1–0

|match_R-E_VEV=3–4

|match_SCH_A-L=1–1

|match_SCH_AYW=3–3

|match_SCH_EUP=1–0

|match_SCH_GAN=0–0

|match_SCH_HAB=2–0

|match_SCH_HUY=2–0

|match_SCH_JET=3–3

|match_SCH_LAC=1–0

|match_SCH_LAL=1–1

|match_SCH_MAN=2–0

|match_SCH_MEU=2–2

|match_SCH_O-A=4–3

|match_SCH_ONH=0–1

|match_SCH_R-E=2–0

|match_SCH_SER=3–1

|match_SCH_VER=0–0

|match_SCH_VEV=0–0

|match_SER_A-L=1–1

|match_SER_AYW=2–0

|match_SER_EUP=0–0

|match_SER_GAN=3–3

|match_SER_HAB=4–1

|match_SER_HUY=3–2

|match_SER_JET=1–0

|match_SER_LAC=3–2

|match_SER_LAL=2–0

|match_SER_MAN=0–2

|match_SER_MEU=0–1

|match_SER_O-A=6–1

|match_SER_ONH=2–1

|match_SER_R-E=0–1

|match_SER_SCH=0–2

|match_SER_VER=0–0

|match_SER_VEV=0–2

|match_VER_A-L=0–2

|match_VER_AYW=1–2

|match_VER_EUP=1–0

|match_VER_GAN=3–0

|match_VER_HAB=0–3

|match_VER_HUY=1–3

|match_VER_JET=8–0

|match_VER_LAC=1–1

|match_VER_LAL=2–6

|match_VER_MAN=1–2

|match_VER_MEU=1–3

|match_VER_O-A=2–0

|match_VER_ONH=2–1

|match_VER_R-E=0–1

|match_VER_SCH=0–1

|match_VER_SER=1–2

|match_VER_VEV=0–2

|match_VEV_A-L=4–2

|match_VEV_AYW=0–1

|match_VEV_EUP=2–0

|match_VEV_GAN=1–1

|match_VEV_HAB=0–1

|match_VEV_HUY=2–1

|match_VEV_JET=1–1

|match_VEV_LAC=4–0

|match_VEV_LAL=0–1

|match_VEV_MAN=1–2

|match_VEV_MEU=1–2

|match_VEV_O-A=2–0

|match_VEV_ONH=1–1

|match_VEV_R-E=0–2

|match_VEV_SCH=1–2

|match_VEV_SER=1–1

|match_VEV_VER=1–0

}}

Promotion play-offs

=VV=

The promotion play-offs are contested by eight teams, from each division four teams: the team finishing second overall plus the three period champions. In case one or more periods are won by the eventual champion (already promoted) or by the same club, then the best ranked team that has not already qualified will take its place. Furthermore, any team not eligible (for instance due to not receiving a licence) will not be eligible to take place and the next best ranked team will take its spot.

Qualified teams:

  • Diegem Sport (highest place eligible finisher (3rd) not directly qualified from division VV B)
  • Harelbeke (2nd highest place eligible finisher (3rd) not directly qualified from division VV A)
  • Jong Essevee (3rd highest place eligible finisher (7th) not directly qualified from division VV A)
  • Jong KV Mechelen (2nd highest place eligible finisher (5th) not directly qualified from division VV B)
  • Racing Mechelen (3rd highest place eligible finisher (6th) not directly qualified from division VV B)
  • Rupel Boom (runner-up division VV B)
  • Zelzate (highest place eligible finisher (3rd) not directly qualified from division VV A)

Due to only three teams receiving a licence in division VV A, only seven teams took part. Diegem Sport was the lucky team to receive a bye to the second round. As only one place was available, three rounds will be needed and only the winner of the third round will be automatically promoted. The losing team of round 3 will be first in line in case another spot opens up and a third-place match is scheduled to be played for ruther ranking.

{{8TeamBracket-Consols

| boldwinner=yes

| byes=yes

| QF=Round 1

| SF=Round 2

| final=Placing 1st/2nd

| third=Placing 3rd/4th

| QF-details3=3 May 2025

| QF-seed5= | QF-team5=Jong Essevee | QF-score5=2

| QF-seed6= | QF-team6=Rupel Boom | QF-score6=0

| QF-details1=4 May 2025

| QF-seed1= | QF-team1=Jong KV Mechelen | QF-score1=0

| QF-seed2= | QF-team2=Zelzate | QF-score2=5

| QF-details2=4 May 2025

| QF-seed3= | QF-team3=Racing Mechelen | QF-score3=1

| QF-seed4= | QF-team4=Harelbeke | QF-score4=2

| SF-details2=11 May 2025

| SF-seed3= | SF-team3=Jong Essevee | SF-score3=2

| SF-seed4= | SF-team4=Diegem | SF-score4=3

| SF-details1=11 May 2025

| SF-seed1= | SF-team1=Zelzate | SF-score1=2

| SF-seed2= | SF-team2=Harelbeke | SF-score2=0

| final-details1=18 May 2025

| final-seed1= | final-team1=Zelzate | final-score1=

| final-seed2= | final-team2=Diegem | final-score2=

| third-details1=18 May 2025

| third-seed1= | third-team1=Jong Essevee | third-score1=

| third-seed2= | third-team2=Harelbeke | third-score2=

}}

==Round 1==

{{Football box

|date = {{Start date|2025|5|3|df=y}}

|time = 19:30 CEST

|team1 = Jong Essevee

|score = 2–0

|penaltyscore =

|aet =

|team2 = Rupel Boom

|goals1 =

|goals2 =

|stadium =

|attendance =

|referee =

|report = https://rupelboomfc.be/event/jong-essevee-zulte-waregem-b-k-rupel-boom-f-c/

|penalties1 =

|penalties2 =

}}

----

{{Football box

|date = {{Start date|2025|5|4|df=y}}

|time = 15:00 CEST

|team1 = Jong KV Mechelen

|score = 0–5

|penaltyscore =

|aet =

|team2 = Zelzate

|goals1 =

|goals2 =

|stadium =

|attendance =

|referee =

|report = https://www.voetbalvlaanderen.be/wedstrijd/7085657

|penalties1 =

|penalties2 =

}}

----

{{Football box

|date = {{Start date|2025|5|4|df=y}}

|time = 16:00 CEST

|team1 = Racing Mechelen

|score = 1–2

|penaltyscore =

|aet =

|team2 = Harelbeke

|goals1 =

|goals2 =

|stadium =

|attendance =

|referee =

|report = https://www.voetbalvlaanderen.be/wedstrijd/7085656

|penalties1 =

|penalties2 =

}}

Jong Essevee, Harelbeke, and Zelzate qualified for the VV second-round promotion play-offs, Diegem automatically qualified after receiving a bye in the first round

==Round 2==

{{Football box

|date = {{Start date|2025|5|10|df=y}}

|time = 18:30 CEST

|team1 = Jong Essevee

|score = 2–3

|penaltyscore =

|aet =

|team2 = Diegem

|goals1 =

|goals2 =

|stadium = The Farm, Zulte

|attendance =

|referee = Arthur Seynaeve

|report = https://www.voetbalvlaanderen.be/wedstrijd/7087503

|penalties1 =

|penalties2 =

}}

----

{{Football box

|date = {{Start date|2025|5|11|df=y}}

|time = 15:00 CEST

|team1 = Zelzate

|score = 2–0

|penaltyscore =

|aet =

|team2 = Harelbeke

|goals1 =

|goals2 =

|stadium = Armand Seghers Complex, Zelzate

|attendance =

|referee = Jonas Timmermans

|report = https://www.voetbalvlaanderen.be/wedstrijd/7087501

|penalties1 =

|penalties2 =

}}

==Placing 3rd/4th==

{{Football box

|date = {{Start date|2025|5|18|df=y}}

|time = 15:00 CEST

|team1 = Jong Essevee

|score =

|penaltyscore =

|aet =

|team2 = Harelbeke

|goals1 =

|goals2 =

|stadium =

|attendance =

|referee =

|report =

|penalties1 =

|penalties2 =

}}

==Placing 1st/2nd==

{{Football box

|date = {{Start date|2025|5|18|df=y}}

|time = 19:30 CEST

|team1 = Zelzate

|score =

|penaltyscore =

|aet =

|team2 = Diegem

|goals1 =

|goals2 =

|stadium =

|attendance =

|referee =

|report =

|penalties1 =

|penalties2 =

}}

=ACFF=

The promotion play-offs on ACFF-side are contested by four teams: the team finishing second overall plus the three period champions. In case one or more periods are won by the eventual champion (already promoted), the runner-up, or by the same club, then the best ranked team that has not already qualified will take its place. Furthermore, any team not eligible (for instance due to not receiving a licence) will not be eligible to take place and the next best ranked team will take its spot.

Qualified teams:

  • Meux (runner-up)
  • Onhaye (highest place eligible finisher (3rd) not directly qualified)
  • Verviérs (2nd highest place eligible finisher (4th) not directly qualified)
  • Habay-la-Neuve (3rd highest place eligible finisher (5th) not directly qualified)

As this season there were no teams from ACFF-side relegation from the 2024–25 Challenger Pro League, two extra teams need to be promoted. As a result, the two first round winners will be promoted. The ACFF has scheduled both a final and 3rd-place match to be played, but it is unlikely that either of these matches will be played as at the time of the draw it was quite unlikely a third team could possibly be promoted.

{{4TeamBracket

| seeds=no

| boldwinner=yes

| RD1=Round 1

| RD2=Round 2

| RD2B=Placing 3rd/4th

| RD1-details1=11 May 2025

| RD1-seed1= | RD1-team1=Meux | RD1-score1=1 (3)

| RD1-seed2= | RD1-team2=Onhaye | RD1-score2=1 (1)

| RD1-details2=11 May 2025

| RD1-seed3= | RD1-team3=Verviers | RD1-score3=0

| RD1-seed4= | RD1-team4=Habay-la-Neuve | RD1-score4=1

| RD2-details1=18 May 2025

| RD2-seed1= | RD2-team1=Meux | RD2-score1=

| RD2-seed2= | RD2-team2=Habay-la-Neuve| RD2-score2=

| RD2b-details1=

| RD2b-seed1= | RD2b-team1=Onhaye | RD2b-score1=

| RD2b-seed2= | RD2b-team2=Verviers | RD2b-score2=

}}

==Semi-final==

{{Football box

|date = {{Start date|2025|5|11|df=y}}

|time = 15:00 CEST

|team1 = Verviers

|score = 0–1

|penaltyscore =

|aet =

|team2 = Habay-la-Neuve

|goals1 =

|goals2 =

|stadium = Stade Communale de Bielmont, Verviers

|attendance =

|referee =

|report =

|penalties1 =

|penalties2 =

}}

----

{{Football box

|date = {{Start date|2025|5|11|df=y}}

|time = 18:30 CEST

|team1 = Meux

|score = 1–1

|penaltyscore = 3–1

|aet =

|team2 = Onhaye

|goals1 =

|goals2 =

|stadium = Stade des Vert et Blanc, La Bruyère

|attendance = 1,500

|referee =

|report =

|penalties1 = Sleeuwaert {{pengoal}}
Gaux {{pengoal}}
Lotte {{penmiss}}
Gauchet {{pengoal}}

|penalties2 = {{penmiss}} Gilain
{{pengoal}} Leclef
{{penmiss}} Defresne
{{penmiss}} Puche

}}

Habay-la-Neuve and Meux are promoted. The final and third-place match are scheduled to determine the order in case extra promotion spots become available.

==Placing 3rd/4th==

{{Football box

|date = {{Start date|2025|5|18|df=y}}

|time = 15:00 CEST

|team1 = Verviers

|score =

|penaltyscore =

|aet =

|team2 = Onhaye

|goals1 =

|goals2 =

|stadium =

|attendance =

|referee =

|report =

|penalties1 =

|penalties2 =

}}

==Placing 1st/2nd==

{{Football box

|date = {{Start date|2025|5|18|df=y}}

|time = 15:00 CEST

|team1 = Meux

|score =

|penaltyscore =

|aet =

|team2 = Habay-la-Neuve

|goals1 =

|goals2 =

|stadium =

|attendance =

|referee =

|report =

|penalties1 =

|penalties2 =

}}

Relegation play-off

At this level of the football pyramid, there is only a relegation playoff on the VV-side, with the two teams finishing 14th playing each other.

{{football box

|date = {{Start date|2025|5|4|df=y}}

|time = 15:00

|team1 = Lille United

|score = 1–3

|aet =

|penaltyscore =

|report = https://focus-wtv.be/sport/fc-gullegem-kan-behoud-verzekeren-in-tweede-nationale

|team2 = Gullegem

|goals1 =

|goals2 =

|stadium =

|attendance =

|referee =

}}

Gullegem remain in Belgian Division 2, while Lille United are relegated to Belgian Division 3.

References

{{Reflist}}

{{2024–25 in Belgian football}}

{{DEFAULTSORT:24-25 Belgian Division 2}}

Category:Belgian Division 2

Bel

4

Belgium