Match previews and recaps to help you decide which games are worth watching

Futmetrix Verdict
93
FT
Thu, Oct 29
St. Louis City
2-3
Portland Timbers
⚡ Intensity 95
⚖️ Balance 45
🏆 Stakes 30
🎲 Upset 60
Velde's brace, Portland's frantic escape

Win Probability

  • St. Louis City 54%
  • Draw 23%
  • Portland Timbers 24%

Futmetrix AI estimate

Three goals flip the night at Citypark

Must-Watch Futmetrix Score: 93/100. A six-minute surge and a stoppage-time dismissal made this road win far more than a routine result.

Opening Act

Portland Timbers left Citypark 3-2 winners: the visitors were 11th, while St. Louis City sat fifth. The home side controlled the ball without controlling the danger. St. Louis dominated possession at 61 percent, fired 13 shots and put six on target, yet Portland matched that count from 12 attempts. The difference was ruthless finishing, not territorial command. The score stayed level until Kristoffer Velde struck in the 42nd minute, converting Cole Bassett's setup. That breakthrough shifted the mood at Citypark. Carlo Holse, St. Louis' creative outlet, supplied four key passes and later assisted Daniel Edelman, but Portland were far more dangerous near the box when it mattered. The Balance showed in the shot count; the finishing made it anything but.

The Pivot

The match turned on a six-minute burst that tore open the contest. David Da Costa, who finished with six key passes, doubled Portland's lead at 45+3, with Jímer Fory assisting; Velde struck again three minutes later after Da Costa's pass. Around the break, Portland had turned 0-0 into 0-3. St. Louis had created enough to expect more: its 1.77 expected goals dwarfed Portland's 0.89, and the hosts had three big chances. But Portland were exact where it mattered. The Intensity rose when Holse picked out Edelman for 1-3 in the 58th, giving the home crowd hope. Portland's six shots on target produced three goals; St. Louis needed patience for every opening. The visitors absorbed pressure and kept the comeback at arm's length until the closing minutes.

Resolution

St. Louis refused to fold. Substitute Sang-bin Jung, introduced at halftime, turned Christopher Durkin's pass into a goal at 90+1 and made the closing stretch uncomfortable for Portland. Kamal Miller's red card at 90+6 came too late to undo the damage or give St. Louis time to force an equalizer. The Stakes were clear in the table: fifth-place St. Louis sat nine points ahead of 11th-place Portland. The win offered the Timbers a valuable lift and denied the home side a chance to strengthen its position. Twenty-five combined shots and 12 on target explain the entertainment; Portland's three-goal burst explains the result. Velde's brace and Da Costa's goal-and-assist display made the difference. St. Louis' late response made the finish tense, but Portland never surrendered the lead.

Key Questions

How did the red card for Kamal Miller impact the match?

Miller was sent off at 90+6, after Jung's goal; Portland defended the final moments with ten, but the card came too late to change the result.

What made K. Velde the Man of the Match?

His goals in the 42nd and 48th minutes powered Portland's decisive burst and made him the night's standout.

What caused the five-goal thriller?

Portland's three goals between the 42nd and 48th minutes set the tone; Edelman and Jung scored for St. Louis, leaving the Timbers 3-2 winners.

What is the Futmetrix Score?

The Futmetrix Score is our 0-100 verdict on how entertaining a match is. We look at intensity, balance, stakes, and star quality to tell you if it's worth your time.

Match Statistics

Possession
61%
39%
St. Louis City 61%
Portland Timbers 39%
Shots
13
12
St. Louis City 13
Portland Timbers 12
Shots on Target
6
6
St. Louis City 6
Portland Timbers 6
Expected Goals (xG)
1.77
0.89
St. Louis City 1.77
Portland Timbers 0.89
Passes
444
286
St. Louis City 444
Portland Timbers 286
Corners
5
4
St. Louis City 5
Portland Timbers 4
Fouls
16
12
St. Louis City 16
Portland Timbers 12
Yellow Cards
0
3
St. Louis City 0
Portland Timbers 3
Red Cards
0
1
St. Louis City 0
Portland Timbers 1

Match Events

Kristoffer Velde (Cole Bassett) ⚽ 42'
45' 🔄 ↓ Damion Downs ↑Sang-bin Jung
David Da Costa (Jímer Fory) ⚽ 45'+3
HT
Kristoffer Velde (David Da Costa) ⚽ 48'
58' ⚽ Daniel Edelman (Carlo Holse)
↓ Julio Joao Ortiz Landazuri ↑Alexander Aravena 🔄 60'
↓ Cole Bassett ↑Eric Izoita 🔄 60'
Eric Izoita 🟨 62'
↓ Jímer Fory ↑Ian Smith 🔄 67'
Kamal Miller 🟨 71'
↓ Ariel Lassiter ↑Vincent Janssen 🔄 75'
↓ Diego Chará ↑Jose Caicedo 🔄 75'
79' 🔄 ↓ Tomas Totland ↑Simon Becher
79' 🔄 ↓ Daniel Edelman ↑Fallou Fall
↓ Kristoffer Velde ↑Finn Surman 🔄 83'
Vincent Janssen 🟨 84'
Ian Smith 🟨 88'
90'+1 ⚽ Sang-bin Jung (Christopher Durkin)
Kamal Miller 🟥 90'+6
FT

Player Cards

Our take on every player in this match

St. Louis City

Goalkeepers
Ben Lundt
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Defenders
Timo Baumgartl
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Lukas MacNaughton
STORMTROOPER
STORMTROOPER
2
Shots
2
Shots
0
Goals
0
On Target
Dante Polvara
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Midfielders
Conrad Wallem
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Chris Durkin
PROVIDER
PROVIDER
1
Assists
1
Assists
1
Key Passes
6.9
Rating
Daniel Edelman
SNIPER
SNIPER
50%
Conversion
50%
Conversion
1
Goals
2
Shots
Tomas Totland
LATE SHIFT
LATE SHIFT
11
Late Mins
11
Late Mins
79
Total Mins
79
Entry
Forwards
Carl Johan Holse Justesen
ARCHITECT
ARCHITECT
4
Key Passes
4
Key Passes
1
Assists
35%
Pass Acc
Rafael Navarro
PROVOCATEUR
PROVOCATEUR
6
Fouls Won
6
Fouls Won
10
Duels Won
0
Pens Won
Damion Downs
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
45
Total Mins
45
Entry
BENCH
Christian Olivares
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Mamadou Fall
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Fallou Fall
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
11
Total Mins
Started
Entry
Jaziel Orozco
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Miguel Perez
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
C. Brunet
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Simon Becher
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
11
Total Mins
Started
Entry
Jeong Sang-bin
CLUTCH HERO
CLUTCH HERO
90
Goal Time
90
Goal Time
Goal
Impact
7.4
Rating
Riley Lynch
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry

Portland Timbers

Goalkeepers
James Pantemis
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Defenders
Ronald Hernández
PROVOCATEUR
PROVOCATEUR
3
Fouls Won
3
Fouls Won
5
Duels Won
0
Pens Won
Joel Waterman
PROVOCATEUR
PROVOCATEUR
2
Fouls Won
2
Fouls Won
3
Duels Won
0
Pens Won
Kamal Miller
FRIENDLY FIRE
FRIENDLY FIRE
Red Card
Mistake
Red Card
Mistake
3
Fouls
5.7
Rating
Jimer Fory
WALL
WALL
0
Dribbled Past
0
Dribbled Past
2
Tackles
67%
Duel Win %
Midfielders
Joao Ortiz
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
60
Total Mins
60
Entry
Diego Chará
SWEEPER
SWEEPER
3
Cleanups
3
Cleanups
3
Interceptions
0
Blocks
Cole Bassett
PROVIDER
PROVIDER
1
Assists
1
Assists
1
Key Passes
6.5
Rating
Forwards
Ariel Lassiter
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
75
Total Mins
75
Entry
David Costa
SNIPER
SNIPER
50%
Conversion
50%
Conversion
1
Goals
2
Shots
Kristoffer Velde
HITMAN
HITMAN
2
Goals
2
Goals
2
On Target
9.1
Rating
BENCH
Hunter Sulte
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Eric Miller
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Ian Smith
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
23
Total Mins
Started
Entry
Finn Surman
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
7
Total Mins
Started
Entry
Eric Izoita
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
30
Total Mins
Started
Entry
José Luis Caicedo
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
15
Total Mins
Started
Entry
Omir Fernandez
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Vincent Janssen
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
15
Total Mins
Started
Entry
Alexander Aravena
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
30
Total Mins
Started
Entry

Head to Head

Date Home Score Away Competition Venue
09/10/2026 Portland Timbers 2 - 2 St. Louis City Major League Soccer Providence Park
07/13/2025 St. Louis City 2 - 1 Portland Timbers Major League Soccer Energizer Park
06/08/2025 Portland Timbers 2 - 1 St. Louis City Major League Soccer Providence Park
08/25/2024 Portland Timbers 4 - 4 St. Louis City Major League Soccer Providence Park
08/10/2024 St. Louis City 3 - 1 Portland Timbers Leagues Cup CITYPARK
06/09/2024 St. Louis City 0 - 0 Portland Timbers Major League Soccer CITYPARK
04/30/2023 St. Louis City 1 - 2 Portland Timbers Major League Soccer CITYPARK
03/12/2023 Portland Timbers 1 - 2 St. Louis City Major League Soccer Providence Park
09/10/2026
Major League Soccer Providence Park
07/13/2025
Major League Soccer Energizer Park
06/08/2025
Major League Soccer Providence Park
08/25/2024
Major League Soccer Providence Park
08/10/2024
Leagues Cup CITYPARK
06/09/2024
Major League Soccer CITYPARK
04/30/2023
Major League Soccer CITYPARK
03/12/2023
Major League Soccer Providence Park
St. Louis City Win
Portland Timbers Win
Draw

League Standings

Pos Team P Pts GF GA GD Form
1 Vancouver Whitecaps 26 48 51 22 +29 LColorado Rapids 1 - 0 Vancouver Whitecaps (25-10-2026)WAustin 1 - 2 Vancouver Whitecaps (18-10-2026)DSt. Louis City 0 - 0 Vancouver Whitecaps (15-10-2026)DLos Angeles FC 1 - 1 Vancouver Whitecaps (11-10-2026)WReal Salt Lake 0 - 3 Vancouver Whitecaps (20-09-2026)
2 FC Dallas 26 44 47 42 +5 WFC Dallas 3 - 0 San Jose Earthquakes (25-10-2026)DHouston Dynamo 2 - 2 FC Dallas (18-10-2026)WFC Dallas 1 - 0 Seattle Sounders (15-10-2026)WFC Dallas 1 - 0 Los Angeles FC (27-09-2026)DFC Dallas 0 - 0 Austin (20-09-2026)
3 San Jose Earthquakes 25 40 45 35 +10 LFC Dallas 3 - 0 San Jose Earthquakes (25-10-2026)DReal Salt Lake 1 - 1 San Jose Earthquakes (15-10-2026)DColorado Rapids 1 - 1 San Jose Earthquakes (11-10-2026)WSan Jose Earthquakes 3 - 1 Portland Timbers (27-09-2026)DSan Jose Earthquakes 2 - 2 Los Angeles FC (19-09-2026)
4 Colorado Rapids 26 39 36 29 +7 WColorado Rapids 1 - 0 Vancouver Whitecaps (25-10-2026)DPortland Timbers 0 - 0 Colorado Rapids (18-10-2026)DColorado Rapids 2 - 2 Minnesota United FC (15-10-2026)DColorado Rapids 1 - 1 San Jose Earthquakes (11-10-2026)LLos Angeles Galaxy 3 - 2 Colorado Rapids (27-09-2026)
5 St. Louis City 25 39 44 39 +5 LReal Salt Lake 3 - 0 St. Louis City (25-10-2026)LMinnesota United FC 3 - 2 St. Louis City (17-10-2026)DSt. Louis City 0 - 0 Vancouver Whitecaps (15-10-2026)WSt. Louis City 6 - 2 Los Angeles Galaxy (11-10-2026)WSt. Louis City 4 - 2 Minnesota United FC (13-09-2026)
6 Los Angeles FC 26 36 36 31 +5 DLos Angeles FC 2 - 2 Los Angeles Galaxy (26-10-2026)WLos Angeles FC 3 - 1 Austin (15-10-2026)DLos Angeles FC 1 - 1 Vancouver Whitecaps (11-10-2026)LFC Dallas 1 - 0 Los Angeles FC (27-09-2026)DSan Jose Earthquakes 2 - 2 Los Angeles FC (19-09-2026)
7 Seattle Sounders 25 36 34 34 0 DSan Diego 2 - 2 Seattle Sounders (25-10-2026)LFC Dallas 1 - 0 Seattle Sounders (15-10-2026)WSeattle Sounders 2 - 1 Sporting Kansas City (02-10-2026)WSeattle Sounders 3 - 1 Minnesota United FC (27-09-2026)WSeattle Sounders 2 - 0 Real Salt Lake (24-09-2026)
8 Houston Dynamo 25 36 33 35 -2 DHouston Dynamo 0 - 0 Minnesota United FC (25-10-2026)DHouston Dynamo 2 - 2 FC Dallas (18-10-2026)DSan Diego 3 - 3 Houston Dynamo (15-10-2026)DMinnesota United FC 2 - 2 Houston Dynamo (11-10-2026)LHouston Dynamo 0 - 2 Sporting Kansas City (27-09-2026)
9 Real Salt Lake 25 33 40 38 +2 WReal Salt Lake 3 - 0 St. Louis City (25-10-2026)WSporting Kansas City 1 - 3 Real Salt Lake (18-10-2026)DReal Salt Lake 1 - 1 San Jose Earthquakes (15-10-2026)LSeattle Sounders 2 - 0 Real Salt Lake (24-09-2026)LReal Salt Lake 0 - 3 Vancouver Whitecaps (20-09-2026)
10 San Diego 25 30 44 43 +1 DSan Diego 2 - 2 Seattle Sounders (25-10-2026)DLos Angeles Galaxy 2 - 2 San Diego (18-10-2026)DSan Diego 3 - 3 Houston Dynamo (15-10-2026)DAustin 3 - 3 San Diego (27-09-2026)LSan Diego 2 - 3 San Jose Earthquakes (10-09-2026)
11 Portland Timbers 25 30 45 47 -2 DPortland Timbers 0 - 0 Colorado Rapids (18-10-2026)LLos Angeles Galaxy 2 - 0 Portland Timbers (15-10-2026)DSporting Kansas City 3 - 3 Portland Timbers (11-10-2026)LSan Jose Earthquakes 3 - 1 Portland Timbers (27-09-2026)LFC Dallas 2 - 1 Portland Timbers (13-09-2026)
12 Los Angeles Galaxy 26 30 34 47 -13 DLos Angeles FC 2 - 2 Los Angeles Galaxy (26-10-2026)DLos Angeles Galaxy 2 - 2 San Diego (18-10-2026)WLos Angeles Galaxy 2 - 0 Portland Timbers (15-10-2026)LSt. Louis City 6 - 2 Los Angeles Galaxy (11-10-2026)WLos Angeles Galaxy 3 - 2 Colorado Rapids (27-09-2026)
13 Minnesota United FC 25 28 37 43 -6 DHouston Dynamo 0 - 0 Minnesota United FC (25-10-2026)WMinnesota United FC 3 - 2 St. Louis City (17-10-2026)DColorado Rapids 2 - 2 Minnesota United FC (15-10-2026)DMinnesota United FC 2 - 2 Houston Dynamo (11-10-2026)LSeattle Sounders 3 - 1 Minnesota United FC (27-09-2026)
14 Austin 25 28 31 44 -13 WSporting Kansas City 1 - 2 Austin (25-10-2026)LAustin 1 - 2 Vancouver Whitecaps (18-10-2026)LLos Angeles FC 3 - 1 Austin (15-10-2026)DAustin 3 - 3 San Diego (27-09-2026)DFC Dallas 0 - 0 Austin (20-09-2026)
15 Sporting Kansas City 25 21 30 58 -28 LSporting Kansas City 1 - 2 Austin (25-10-2026)LSporting Kansas City 1 - 3 Real Salt Lake (18-10-2026)DSporting Kansas City 3 - 3 Portland Timbers (11-10-2026)LSeattle Sounders 2 - 1 Sporting Kansas City (02-10-2026)WHouston Dynamo 0 - 2 Sporting Kansas City (27-09-2026)

Find your next match faster.

Honest match ratings. Find what is worth watching—without the clutter.

Bookmark this page

This page updates as new matches arrive.

Keep these picks handy.

Press Ctrl+D, then confirm in your browser.

Viewed labels stay on this device. We don't receive your reading history.

Keep Futmetrix handy

Honest match ratings. Find what is worth watching—without the clutter.