MoneyballDixon-Coles · xG fusion
Back to Moneyball

St. Louis City 2-3 Portland Timbers: Match Report, Goals, Stats and Ratings

Full time: St. Louis City 2-3 Portland Timbers

Portland Timbers beat St. Louis City 3-2 in MLS on Thursday 29 October 2026 at Energizer Park. The goals: Kristoffer Velde 42', David Da Costa 45+3', Kristoffer Velde 48', Daniel Ethan Edelman 58', Rafael Navarro 90+1'. It went against Moneyball's pre-match estimate.

How Portland Timbers won it

Kristoffer Velde put Portland Timbers ahead in the 42nd minute, set up by Cole Bassett. David Da Costa made it 0-2 to Portland Timbers in the 45th minute (+3), set up by Jimer Fory. Kristoffer Velde made it 0-3 to Portland Timbers in the 48th minute, set up by David Da Costa. Daniel Ethan Edelman made it 1-3 to St. Louis City in the 58th minute, set up by Carlo Holse. Rafael Navarro made it 2-3 to St. Louis City in the 90th minute (+1), set up by Sang-bin Jeong.

It was 0-2 at half-time.

Kristoffer Velde scored twice.

Kamal Miller of Portland Timbers was sent off in the 90th minute (+6) for a second yellow card. The referee, R. Vazquez, showed 4 yellow cards: 0 to St. Louis City and 4 to Portland Timbers.

St. Louis City: Y. Damet, 3-4-1-2 · Portland Timbers: M. Cifuentes Corvillo, 4-3-3.

Moneyball's prediction against the result

The prediction missed. Moneyball's pick on the Match Board was St. Louis City Win, and on 2-3 it was wrong.

The estimate's most likely result was a St. Louis City win at 50%; a Portland Timbers win, at 26%, is what happened. Its single most likely score was 1-1 (11%).

The match had far more goals than expected: the estimate was about 3.2 goals and there were 5.

Over 2.5 goals had been put at 62%; with 5 goals the over came in, as the estimate leaned.

Both teams to score was 63%; both did, in line with the estimate.

The pre-match consensus had a St. Louis City win at 50%, the same lean as Moneyball.

Computed before kick-off from both sides' season goals and expected goals as of 2026-10-28, through a Dixon-Coles score model, and left as it was.

Why it went this way

On the day the expected goals were 1.16 for St. Louis City and 2.14 for Portland Timbers.

The run of play itself went against the pre-match reading: Moneyball expected St. Louis City to create more, and Portland Timbers did.

St. Louis City had 6 shots on target, Portland Timbers 6.

St. Louis City had 61% of the ball, but Portland Timbers took the points.

A red card changed the shape of the match, and no pre-match model can see one coming.

Where the two sides stood before this match

St. Louis City came into it with 34 MLS matches played, scoring 1.7 and conceding 1.4 a match, with 1.53 expected goals for and 1.47 against, and had won 44% of their matches.

Portland Timbers came into it with 34 MLS matches played, scoring 1.8 and conceding 1.8 a match, with 1.52 expected goals for and 1.43 against, and had won 38% of their matches.

St. Louis City vs Portland Timbers: the match in numbers

St. Louis CityMatch statisticsPortland Timbers
61%Ball possession39%
1.16Expected goals (xG)2.14
13Total shots12
6Shots on target6
5Big chances2
444Total passes290
84%Pass accuracy76%
5Corners4
15Fouls12
3Offsides1
12Tackles12
3Saves4
0Yellow cards5
0Red cards1

Team statistics from Sportmonks.

Player ratings and man of the match

Man of the match: David Da Costa (Portland Timbers), rated 8.8 by Sportmonks, with 1 goal, 1 assist.

St. Louis City

Portland Timbers

The lowest-rated starter was Lukas MacNaughton at 6.3. Ratings run from 0 to 10; around 7.0 is a solid match.

What comes next

Each preview has Moneyball's estimate for the next match, published before kick-off and marked against the result afterwards, as this one is.

Questions about St. Louis City vs Portland Timbers

What was the score in St. Louis City vs Portland Timbers?

St. Louis City 2-3 Portland Timbers (half-time 0-2), MLS, Thursday 29 October 2026.

Who scored in St. Louis City vs Portland Timbers?

Kristoffer Velde 42', David Da Costa 45+3', Kristoffer Velde 48', Daniel Ethan Edelman 58', Rafael Navarro 90+1'.

Did Moneyball predict St. Louis City vs Portland Timbers correctly?

The prediction missed. Moneyball's pick on the Match Board was St. Louis City Win, and on 2-3 it was wrong.

Who was man of the match in St. Louis City vs Portland Timbers?

David Da Costa, rated 8.8 by Sportmonks.

Who refereed St. Louis City vs Portland Timbers?

R. Vazquez.

Every match, before and after

Moneyball writes a preview with its estimate before every match of Europe's top five leagues and the European cups, then marks it against the result, hits and misses alike.

Open Moneyball Match Live All match reports

Moneyball is a football statistics site. No model predicts football reliably: every figure is an estimate.