29 October 2026, 00:30 UTC

St. Louis City vs Portland Timbers Major League Soccer prediction & result

CITYPARK, Saint Louis
Referee: Rubiel Vazquez
Full time2 – 3

Final score: St. Louis City 2-3 Portland Timbers.

Before kick-off the model made it 55% St. Louis City, 22% draw, 23% Portland Timbers — fair odds of 1.82, 4.55 and 4.35.

Most likely scoreline: 2-1.

The model got this one wrong.

Published · updated

Has the model earned this number?

St. Louis City at 55%: of 1,648 settled 50–65% forecasts, 58.6% came in (average 55.4%). It can be read literally. The full record.

How the model saw it, minute by minute

St. Louis City0%Draw1%Portland Timbers99%

Rebuilt after the match from the model's pre-match expected goals, frozen in the log before kick-off, plus the score and cards as they stood at each minute — never anything later. A ball marks each of the 5 goals, and a card each of the 1 sending-off. The same replay scores the in-play model on the track record.

Match analysis

Match timeline

42'
⚽Kristoffer Veldeassist: Cole Bassett
45+3'
⚽David Da Costaassist: Jímer Fory
🔁Damion Downsout: Sang-bin Jung
45'
48'
⚽Kristoffer Veldeassist: David Da Costa
⚽Daniel Edelmanassist: Carlo Holse
58'
60'
🔁Cole Bassettout: Eric Izoita
60'
🔁Julio Joao Ortiz Landazuriout: Alexander Aravena
62'
Eric Izoita
67'
🔁Jímer Foryout: Ian Smith
71'
Kamal Miller
75'
🔁Diego Charáout: Jose Caicedo
75'
🔁Ariel Lassiterout: Vincent Janssen
🔁Tomas Totlandout: Simon Becher
79'
🔁Daniel Edelmanout: Fallou Fall
79'
83'
🔁Kristoffer Veldeout: Finn Surman
84'
Vincent Janssen
88'
Ian Smith
⚽Rafael Navarro Lealassist: Sang-bin Jung
90+1'
90+6'
Kamal Miller

Match stats — St. Louis City vs Portland Timbers

61%Possession39%
13Shots12
6On target6
5Corners4
2.07xG0.89

Goals against chances

St. Louis City2 from 2.07 xGabout what the chances were worth
Portland Timbers3 from 0.89 xGmore than the chances were worth

Expected goals totals what the openings were worth, so the gap between it and the score is the finishing — and the luck. Under half a goal either way is called level: xG is an estimate and a smaller gap than that is inside its own error.

Line-ups

St. Louis City 3-4-1-2
  • 39B. LundtG
  • 5L. MacNaughtonD
  • 32T. BaumgartlD
  • 21D. PolvaraD
  • 6C. WallemM
  • 8C. DurkinM
  • 24D. EdelmanM
  • 14T. TotlandM
  • 19C. HolseM
  • 42D. DownsF
  • 9Rafael NavarroF
Substitutes
  • 28M. PerezM
  • 18C. BrunetM
  • 11S. BecherF
  • 4M. FallD
  • 27F. FallD
  • 77Jeong Sang-BinF
  • 48Riley LynchF
  • 31C. OlivaresG
  • 99J. OrozcoD
Coach: Y. Damet
Portland Timbers 4-3-3
  • 41J. PantemisG
  • 12R. HernándezD
  • 2J. WatermanD
  • 4K. MillerD
  • 27J. ForyD
  • 80J. OrtizM
  • 21D. CharáM
  • 17C. BassettM
  • 7A. LassiterF
  • 10David Pereira da CostaF
  • 99K. VeldeF
Substitutes
  • 22O. FernandezF
  • 73Eric IzoitaM
  • 14V. JanssenF
  • 15E. MillerD
  • 23Ian SmithD
  • 26H. SulteG
  • 20F. SurmanD
  • 30J. CaicedoM
  • 28A. AravenaF
Coach: Martí Cifuentes

Form going into St. Louis City vs Portland Timbers

St. Louis City

Major League Soccer

  • L0-3away to Real Salt Lake25 October 2026
  • L2-3away to Minnesota United FC17 October 2026

Portland Timbers

Major League Soccer

  • W3-2Charlotte25 October 2026
  • D0-0Colorado Rapids18 October 2026

Up to 5 matches before kick-off, most recent first; context, not the model's input. How to read this.

Major League Soccer table

#TeamPWDLGFGAGDPts
3St. Louis City34159105948+1154
7Portland Timbers34137146261+146

Where the two sides stand today, not on the day of this match. Full table

Head-to-head: St. Louis City vs Portland Timbers

  • 10 September 2026Portland Timbers 2–2 St. Louis CityMajor League Soccer
  • 13 July 2025St. Louis City 2–1 Portland TimbersMajor League Soccer
  • 8 June 2025Portland Timbers 2–1 St. Louis CityMajor League Soccer
  • 25 August 2024Portland Timbers 4–4 St. Louis CityMajor League Soccer

Leading scorers: St. Louis City and Portland Timbers

St. Louis City

GoalsAssists

  • Rafael Navarro196

Portland Timbers

No player in Major League Soccer's leading scorers — 62 league goals as a side.

Top 3 by league goals this season; player availability is not in the model. How to read this.

The result against the call

Portland Timbers won 3–2 at St. Louis City. The model had leaned towards a win for St. Louis City at 55% and given a win for Portland Timbers 23%. At that figure it expects the outcome about once in every 4 matches like this one. The goals: Kristoffer Velde 42' for Portland Timbers, David Da Costa 45+3' for Portland Timbers, Kristoffer Velde 48' for Portland Timbers, Daniel Edelman 58' for St. Louis City, Rafael Navarro Leal 90+1' for St. Louis City. Sent off: Kamal Miller (Portland Timbers) 90+6'. On expected goals it finished 2.07–0.89.

What this result changed

Before kick-off the season simulation gave St. Louis City a 3.8% chance to finish top of the Western Conference: 5.5% after a win, under 1% after a draw, under 1% after a defeat. The defeat was the worst of those results for them, and left the figure at under 1%, 3.6 points lower than before the match.

For Portland Timbers the question was the chance to finish in the bottom three, 26.5% going in: 5.1% after a win, 21.6% after a draw, 34.4% after a defeat. The win was the best of those results for them, and left the figure at 5.1%, 21.4 points lower than before the match.

Read from our Major League Soccer season simulation as it stood before this match (10,000 runs), counting this result alone. Every result since then has moved the table again, so today's figure is on the competition page.

How the call on St. Louis City v Portland Timbers has moved

First published on 15 Oct at 59% / 21% / 20% (home / draw / away). By kick-off, after 2 updates, it read 55% / 22% / 23%: the biggest move is St. Louis City's chance of winning, down 4 points.

  1. St. Louis City win55%▼ −4
  2. Draw22%▲ +1
  3. Portland Timbers win23%▲ +3

Each update is a full rebuild of both sides' ratings from the latest results, and now and then a change to the model itself. The thin mark is the first published figure.

Statistical estimate, not betting advice This prediction is generated from a statistical model for entertainment and informational purposes only. It does not guarantee any outcome and should not be used as the basis for placing a bet.