All-time standings and playoff results for the Canadian Premier League, which played its first season in 2019.
| Team | GP | W | L | T | GF | GA | Pts |
| Forge FC | 28 | 16 | 2 | 10 | 51 | 22 | 58 |
| Atlético Ottawa | 28 | 15 | 2 | 11 | 54 | 28 | 56 |
| Cavalry FC | 28 | 11 | 8 | 9 | 47 | 36 | 42 |
| HFX Wanderers FC | 28 | 11 | 11 | 6 | 41 | 34 | 39 |
| York United FC | 28 | 10 | 10 | 8 | 43 | 38 | 38 |
| Valour FC | 28 | 7 | 16 | 5 | 35 | 62 | 26 |
| Pacific FC | 28 | 5 | 15 | 8 | 30 | 59 | 23 |
| Vancouver FC | 28 | 4 | 15 | 9 | 35 | 57 | 21 |
| Playoffs #4 York United FC d. #5 Pacific FC 10/22/2025 – #5 York United FC 2, #4 HFX Wanderers FC 2 (5,444) (York advanced 5-4 on penalties) #3 Cavalry FC d. #5 York United FC #2 Atlético Ottawa d. #1 Forge FC #3 Cavalry FC d. #1 Forge FC #2 Atlético Ottawa d. #3 Cavalry FC |
|||||||
| Team | GP | W | L | T | GF | GA | Pts |
| Forge FC | 28 | 15 | 8 | 5 | 45 | 31 | 50 |
| Cavalry FC | 28 | 12 | 4 | 12 | 39 | 27 | 48 |
| Atlético Ottawa | 28 | 11 | 6 | 11 | 42 | 31 | 44 |
| York United FC | 28 | 11 | 11 | 6 | 35 | 36 | 39 |
| Pacific FC | 28 | 9 | 12 | 7 | 27 | 32 | 34 |
| Halifax Wanderers FC | 28 | 7 | 12 | 9 | 37 | 43 | 30 |
| Vancouver FC | 28 | 7 | 12 | 9 | 29 | 43 | 30 |
| Valour FC | 28 | 7 | 14 | 7 | 31 | 42 | 28 |
| Playoffs #4 York United d. #5 Pacific FC 10/23/2024 – YORK UNITED 2, Pacific FC 0 (2,203) #3 Atlético Ottawa d. #4 York United #2 Cavalry FC d. #1 Forge FC #1 Forge FC d. #3 Atlético Ottawa #2 Cavalry FC d. #1 Forge FC |
|||||||
| Team | GP | W | L | T | GF | GA | Pts |
| Cavalry FC | 28 | 16 | 5 | 7 | 46 | 27 | 55 |
| Forge FC | 28 | 11 | 8 | 9 | 39 | 32 | 42 |
| HFX Wanderers FC | 28 | 11 | 8 | 9 | 39 | 32 | 42 |
| Pacific FC | 28 | 11 | 10 | 7 | 42 | 35 | 40 |
| York United FC | 28 | 11 | 12 | 5 | 35 | 44 | 38 |
| Atlético Ottawa | 28 | 10 | 12 | 6 | 38 | 34 | 36 |
| Vancouver FC [E] | 28 | 8 | 15 | 5 | 28 | 50 | 29 |
| Valour FC | 28 | 6 | 14 | 8 | 25 | 38 | 26 |
| Forge FC earned second by virtue of a better away goals differential than HFX Wanderers | |||||||
| Playoffs #4 Pacific FC d. #5 York United FC 10/11/2023 – PACIFIC FC 1, York United FC 0 (2,780) #4 Pacific FC d. #3 Halifax Wanderers FC #2 Forge FC d. #1 Cavalry FC #1 Cavalry FC d. #4 Pacific FC #2 Forge FC d. #1 Cavalry FC |
|||||||
| Team | GP | W | L | T | GF | GA | Pts |
| Atlético Ottawa | 28 | 13 | 5 | 10 | 36 | 29 | 49 |
| Forge FC | 28 | 14 | 9 | 5 | 47 | 25 | 47 |
| Cavalry FC | 28 | 14 | 9 | 5 | 39 | 33 | 47 |
| Pacific FC | 28 | 13 | 8 | 7 | 36 | 33 | 46 |
| Valour FC | 28 | 10 | 11 | 7 | 36 | 34 | 37 |
| York United FC | 28 | 9 | 12 | 7 | 31 | 37 | 34 |
| HFX Wanderers FC | 28 | 8 | 15 | 5 | 24 | 38 | 29 |
| FC Edmonton | 28 | 4 | 16 | 8 | 31 | 51 | 20 |
| Playoffs #1 Atlético Ottawa d. #4 Pacific FC 3-1 on aggregate 10/15/2022 – Atlético Ottawa 2, PACIFIC FC 0 (3,759) 10/23/2022 – ATLETICO OTTAWA 1, Pacific FC 1 (8,428) #2 Forge FC d. #3 Cavalry FC 3-2 on aggregate #2 Forge FC d. #1 Atlético Ottawa |
|||||||
| Team | GP | W | L | T | GF | GA | Pts |
| Forge FC | 28 | 16 | 10 | 2 | 39 | 24 | 50 |
| Cavalry FC | 28 | 14 | 6 | 8 | 34 | 30 | 50 |
| Pacific FC | 28 | 13 | 9 | 6 | 47 | 34 | 45 |
| York United FC | 28 | 8 | 8 | 12 | 35 | 39 | 36 |
| Valour FC | 28 | 10 | 13 | 5 | 38 | 36 | 35 |
| HFX Wanderers FC | 28 | 8 | 8 | 11 | 28 | 34 | 35 |
| FC Edmonton | 28 | 6 | 12 | 10 | 34 | 41 | 28 |
| Atlético Ottawa | 28 | 6 | 14 | 8 | 30 | 47 | 26 |
| Playoffs #3 Pacific FC d. #2 Cavalry FC 11/20/2021 – Pacific FC 2, CAVALRY FC 0 (2,927) #1 Forge FC d. #4 York United FC 11/21/2021 – FORGE FC 3, York United FC 1 (5,123) #3 Pacific FC d. #1 Forge FC |
|||||||
| In response to the COVID-19 pandemic, the CPL conducted a shortened tournament called The Island Games, with all eight teams (including expansion side Atlético Ottawa) playing a single round-robin preliminary round and the top four advancing to a group stage. The top two teams from the group stage advanced to the final, which Forge FC won over HFX Wanderers FC. Click here for more. | |||||||
| Spring Season | GP | W | L | T | GF | GA | Pts |
| Cavalry FC | 10 | 8 | 2 | 0 | 16 | 7 | 24 |
| Forge FC | 10 | 6 | 3 | 1 | 15 | 7 | 19 |
| FC Edmonton | 10 | 4 | 4 | 2 | 8 | 9 | 14 |
| HFX Wanderers | 10 | 3 | 5 | 2 | 8 | 11 | 11 |
| Pacific FC | 10 | 3 | 5 | 2 | 11 | 15 | 11 |
| York9 FC | 10 | 2 | 3 | 5 | 9 | 11 | 11 |
| Valour FC | 10 | 3 | 7 | 0 | 8 | 15 | 9 |
| Fall Season | GP | W | L | T | GF | GA | Pts |
| Cavalry FC | 18 | 11 | 2 | 5 | 35 | 12 | 38 |
| Forge FC | 18 | 11 | 3 | 4 | 30 | 19 | 37 |
| York9 FC | 18 | 7 | 9 | 2 | 30 | 26 | 23 |
| Pacific FC | 18 | 5 | 8 | 5 | 24 | 31 | 20 |
| Valour FC | 18 | 5 | 9 | 4 | 22 | 37 | 19 |
| FC Edmonton | 18 | 4 | 8 | 6 | 19 | 24 | 18 |
| HFX Wanderers | 18 | 3 | 7 | 8 | 13 | 24 | 17 |
|
PLAYOFFS: Forge FC d. Cavalry FC 2-0 on aggregate 10/26/2019 – FORGE FC 1, Calvary FC 0 11/02/2019 – Forge FC 1, CAVALRY FC 0 |
|||||||