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

Futmetrix Verdict
42
FT
Mon, Nov 2
Portland Timbers
3-1
Houston Dynamo
⚡ Intensity 43
⚖️ Balance 32
🏆 Stakes 10
🎲 Upset 0
Three goals, one decisive Janssen

Win Probability

  • Portland Timbers 53%
  • Draw 24%
  • Houston Dynamo 23%

Futmetrix AI estimate

Three Goals in Thirteen Minutes, One Last Word

Average Entertainment Futmetrix Score: 42/100. A seven-minute reply briefly threatened to change the story, but the home side's sharper finishing turned a regular-season fixture into a valuable win.

Opening Act

At Providence Park, the Portland Timbers turned a narrow edge in the decisive spaces into a commanding win, even while the Houston Dynamo edged possession. The visitors had more of the ball, but their circulation rarely threatened: just seven attempts, one on target and no big chances. Portland, by contrast, carried the sharper purpose, producing 16 shots, six on target and five big chances. The Intensity dimension showed up in the delivery too, with 12 corners split evenly, yet it was open-play timing that broke the deadlock. At 25 minutes, David Da Costa finished a move set up by Vincent Janssen, giving the home side a lead earned through direct threat rather than territorial control. The early pattern was clear: Houston could keep the ball, but Portland were finding the dangerous places.

The Pivot

The match's hinge came at 65 minutes. Kristoffer Velde doubled the lead, again supplied by Janssen, and Portland looked set to manage the game. But Houston's response arrived fast: substitute Duncan McGuire, introduced at 66, set up Agustín Bouzat five minutes later. Suddenly the contest was 2-1, and Houston had a foothold after creating almost nothing before that. The Balance dimension swung sharply across the 13-minute burst: three goals, two Portland strikes, and one Houston reminder that the visitors could punish a lapse. Portland did not retreat into a shell. At 78, Da Costa returned the favor, teeing up Janssen to restore the two-goal margin. That exchange—not possession, nor the corner count—decided the night. Houston's only shot on target had brought a goal; Portland answered with the finish that stopped the comeback.

Resolution

Janssen's night was the clearest explanation for Portland's 3-1 win: one goal, two assists, and a hand in all three Portland goals. Da Costa also produced a goal and an assist, while Velde's finish gave the hosts breathing room when the match threatened to tighten. Houston had 54% possession and completed more passes, but that control came with little penetration: five shots from inside the box and zero big chances. Portland's 3.32 expected goals to Houston's 0.53 captures the gap in danger far better than the possession split. The Stakes dimension is straightforward: Portland began 10th on 33 points, six behind sixth-placed Houston on 39, and this result cuts into that gap. At Providence Park, the Timbers supplied the cleaner final-third work and a timely answer after Bouzat scored.

Key Questions

What made V. Janssen the Man of the Match?

One goal, two assists and involvement in all three Portland goals made his influence decisive.

How did substitute V. Janssen change the game?

Janssen started; he was not a substitute. He assisted Da Costa and Velde, then scored Portland's third.

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
46%
54%
Portland Timbers 46%
Houston Dynamo 54%
Shots
16
7
Portland Timbers 16
Houston Dynamo 7
Shots on Target
6
1
Portland Timbers 6
Houston Dynamo 1
Expected Goals (xG)
3.32
0.53
Portland Timbers 3.32
Houston Dynamo 0.53
Passes
438
526
Portland Timbers 438
Houston Dynamo 526
Corners
6
6
Portland Timbers 6
Houston Dynamo 6
Fouls
11
12
Portland Timbers 11
Houston Dynamo 12
Yellow Cards
2
2
Portland Timbers 2
Houston Dynamo 2
Red Cards
0
0
Portland Timbers 0
Houston Dynamo 0

Match Events

18' 🟨 Ian Smith
25' ⚽ David Da Costa (Vincent Janssen)
↓ Franco Negri ↑Duane Holmes 🔄 36'
HT
Agustin Resch 🟨 61'
62' 🔄 ↓ Eric Izoita ↑Cole Bassett
65' ⚽ Kristoffer Velde (Vincent Janssen)
↓ Ibrahim Aliyu ↑Felipe·De Andrade Vieira 🔄 66'
↓ Lyle Foster ↑Duncan McGuire 🔄 66'
↓ Artur ↑Matthew Arana 🔄 66'
Agustín Bouzat (Duncan McGuire) ⚽ 71'
78' ⚽ Vincent Janssen (David Da Costa)
82' 🔄 ↓ Ariel Lassiter ↑Omir Fernandez
82' 🔄 ↓ Vincent Janssen ↑Alexander Aravena
↓ Duane Holmes ↑Nick Markanich 🔄 83'
90' 🔄 ↓ Jose Caicedo ↑Julio Joao Ortiz Landazuri
90' 🔄 ↓ David Da Costa ↑Diego Chará
90'+3 🟨 Diego Chará
FT

Player Cards

Our take on every player in this match

Portland Timbers

Goalkeepers
James Pantemis
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
90
Minutes
Defenders
Ronald Hernández
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Finn Surman
STORMTROOPER
STORMTROOPER
1
Shots
1
Shots
0
Goals
0
On Target
Joel Waterman
MAGNET
MAGNET
87
Activity
87
Activity
80
Passes
7
Duels
Ian Smith
WALL
WALL
0
Dribbled Past
0
Dribbled Past
5
Tackles
59%
Duel Win %
Midfielders
Eric Izoita
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
62
Total Mins
62
Entry
José Luis Caicedo
NPC
NPC
90
Minutes
90
Minutes
44%
Pass Acc
6.5
Rating
David Costa
SNIPER
SNIPER
50%
Conversion
50%
Conversion
1
Goals
2
Shots
Forwards
Ariel Lassiter
LATE SHIFT
LATE SHIFT
8
Late Mins
8
Late Mins
82
Total Mins
82
Entry
Vincent Janssen
CLOSER
CLOSER
1
Late Goals
1
Late Goals
0
Late Assists
75
Minute
Kristoffer Velde
SNIPER
SNIPER
50%
Conversion
50%
Conversion
1
Goals
2
Shots
BENCH
Hunter Sulte
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Sawyer Jura
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Eric Miller
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Cole Bassett
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
28
Total Mins
Started
Entry
Diego Chará
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Joao Ortiz
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Alexander Aravena
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
8
Total Mins
Started
Entry
Omir Fernandez
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
8
Total Mins
Started
Entry
Andrew Guerra
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry

Houston Dynamo

Goalkeepers
Jonathan Bond
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Defenders
Lawrence Ennali
WALL
WALL
0
Dribbled Past
0
Dribbled Past
2
Tackles
82%
Duel Win %
Franco Negri
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
36
Total Mins
36
Entry
A. Resch
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Lucas Halter
MAGNET
MAGNET
92
Activity
92
Activity
83
Passes
9
Duels
Aliyu Ibrahim
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
66
Total Mins
66
Entry
Midfielders
Diadie Samassékou
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
Artur
MAGNET
MAGNET
70
Activity
70
Activity
65
Passes
5
Duels
Agustín Bouzat
SNIPER
SNIPER
100%
Conversion
100%
Conversion
1
Goals
1
Shots
Forwards
Lyle Foster
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
66
Total Mins
66
Entry
Mateusz Bogusz
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
90
Total Mins
Started
Entry
BENCH
Logan Erb
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Blake Gillingham
SPECTATOR
SPECTATOR
0
Saves
0
Saves
0
Conceded
0
Minutes
Antônio Carlos
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Felipe
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
24
Total Mins
Started
Entry
M. Arana
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
24
Total Mins
Started
Entry
Duane Holmes
LATE SHIFT
LATE SHIFT
7
Late Mins
7
Late Mins
47
Total Mins
83
Entry
G. Rivera
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
0
Total Mins
Started
Entry
Nicholas Markanich
LATE SHIFT
LATE SHIFT
15
Late Mins
15
Late Mins
7
Total Mins
Started
Entry
Duncan McGuire
PROVIDER
PROVIDER
1
Assists
1
Assists
1
Key Passes
6.5
Rating

Head to Head

Date Home Score Away Competition Venue
03/15/2026 Houston Dynamo 3 - 2 Portland Timbers Major League Soccer Shell Energy Stadium
09/21/2025 Houston Dynamo 1 - 0 Portland Timbers Major League Soccer Shell Energy Stadium
03/30/2025 Portland Timbers 3 - 1 Houston Dynamo Major League Soccer Providence Park
06/02/2024 Portland Timbers 2 - 2 Houston Dynamo Major League Soccer Providence Park
03/17/2024 Houston Dynamo 1 - 0 Portland Timbers Major League Soccer Shell Energy Stadium
10/22/2023 Portland Timbers 1 - 3 Houston Dynamo Major League Soccer Providence Park
08/21/2023 Houston Dynamo 5 - 0 Portland Timbers Major League Soccer Shell Energy Stadium
06/30/2022 Portland Timbers 2 - 1 Houston Dynamo Major League Soccer Providence Park
04/16/2022 Houston Dynamo 0 - 0 Portland Timbers Major League Soccer PNC Stadium
09/04/2021 Houston Dynamo 0 - 2 Portland Timbers Major League Soccer BBVA Stadium
03/15/2026
Major League Soccer Shell Energy Stadium
09/21/2025
Major League Soccer Shell Energy Stadium
03/30/2025
Major League Soccer Providence Park
06/02/2024
Major League Soccer Providence Park
03/17/2024
Major League Soccer Shell Energy Stadium
10/22/2023
Major League Soccer Providence Park
08/21/2023
Major League Soccer Shell Energy Stadium
06/30/2022
Major League Soccer Providence Park
04/16/2022
Major League Soccer PNC Stadium
09/04/2021
Major League Soccer BBVA Stadium
Portland Timbers Win
Houston Dynamo Win
Draw

League Standings

Pos Team P Pts GF GA GD Form
1 Vancouver Whitecaps 28 54 60 24 +36 WVancouver Whitecaps 5 - 1 Seattle Sounders (01-11-2026)WVancouver Whitecaps 4 - 1 San Diego (29-10-2026)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)
2 FC Dallas 27 45 48 43 +5 DSporting Kansas City 1 - 1 FC Dallas (31-10-2026)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)
3 San Jose Earthquakes 27 44 49 38 +11 WSan Jose Earthquakes 2 - 1 Real Salt Lake (31-10-2026)DSan Jose Earthquakes 2 - 2 Colorado Rapids (29-10-2026)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)
4 Colorado Rapids 27 40 38 31 +7 DSan Jose Earthquakes 2 - 2 Colorado Rapids (29-10-2026)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)
5 St. Louis City 27 39 46 43 +3 LSt. Louis City 0 - 1 San Diego (31-10-2026)LSt. Louis City 2 - 3 Portland Timbers (29-10-2026)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)
6 Houston Dynamo 27 39 35 38 -3 LPortland Timbers 3 - 1 Houston Dynamo (02-11-2026)WSeattle Sounders 0 - 1 Houston Dynamo (29-10-2026)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)
7 Los Angeles FC 27 36 37 34 +3 LLos Angeles FC 1 - 3 Minnesota United FC (02-11-2026)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)
8 Real Salt Lake 27 36 43 41 +2 LSan Jose Earthquakes 2 - 1 Real Salt Lake (31-10-2026)WAustin 1 - 2 Real Salt Lake (29-10-2026)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)
9 Portland Timbers 27 36 51 50 +1 WPortland Timbers 3 - 1 Houston Dynamo (02-11-2026)WSt. Louis City 2 - 3 Portland Timbers (29-10-2026)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)
10 Seattle Sounders 27 36 35 40 -5 LVancouver Whitecaps 5 - 1 Seattle Sounders (01-11-2026)LSeattle Sounders 0 - 1 Houston Dynamo (29-10-2026)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)
11 Minnesota United FC 27 34 43 45 -2 WLos Angeles FC 1 - 3 Minnesota United FC (02-11-2026)WMinnesota United FC 3 - 1 Sporting Kansas City (29-10-2026)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)
12 San Diego 27 33 46 47 -1 WSt. Louis City 0 - 1 San Diego (31-10-2026)LVancouver Whitecaps 4 - 1 San Diego (29-10-2026)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)
13 Los Angeles Galaxy 27 33 38 48 -10 WLos Angeles Galaxy 4 - 1 Austin (31-10-2026)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)
14 Austin 27 28 33 50 -17 LLos Angeles Galaxy 4 - 1 Austin (31-10-2026)LAustin 1 - 2 Real Salt Lake (29-10-2026)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)
15 Sporting Kansas City 27 22 32 62 -30 DSporting Kansas City 1 - 1 FC Dallas (31-10-2026)LMinnesota United FC 3 - 1 Sporting Kansas City (29-10-2026)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)

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.