Houston Dynamo vs Portland Timbers

15 March 2026 · MLS · 2026 · Referee Rubiel Vazquez

Full time 3 – 2

Half-time: 0–1

  • Guilherme 62’
  • F. Andrade 77’
  • M. Bogusz 90+15’
  • G. Guerra 45+4’
  • K. Velde 79’

Match summary

Houston Dynamo came from behind to win 3-2 at home to Portland Timbers, with the winner arriving in stoppage time. Portland Timbers led 1-0 at half-time.

In the first half, G. Guerra put Portland Timbers ahead in first-half stoppage time. In the second half, Guilherme equalised with a header in the 62nd minute, F. Andrade put Houston Dynamo in front in the 77th minute, K. Velde equalised in the 79th minute, and M. Bogusz won it in stoppage time.

Portland Timbers can feel hard done by, creating 2.52 expected goals (xG) from 17 shots to Houston Dynamo's 1.40 from 19. K. Velde had a penalty saved for Portland Timbers. Houston Dynamo had a player sent off.

Match stats

48% Possession 52%
19 Shots 17
6 Shots on target 9
10 Corners 6
408 Passes 453
84.8% Pass accuracy 85.2%
10 Tackles 8
12 Fouls 9
2 Yellow cards 4
1 Red cards 0
0 Offsides 3

Key events

Houston Dynamo Portland Timbers
B. OlsenManagerArgument
0’
Kick-off
5’
A. AravenaShot on target
24’
K. MillerFoul
41’
F. SurmanShot on target
45’
F. SurmanVAR: No penalty
45+1’
45+4’
K. VeldeMissed penaltysaved
45+4’
G. GuerraRight foot shot0-1 (Portland Timbers)
45+5’
Half-time0-1
46’
49’
K. VeldeShot on target
Second half underway
GuilhermeShot on target
52’
53’
A. LassiterShot on target
58’
J. ForyFoul
GuilhermeHeader1-1 (Houston Dynamo)
62’
70’
71’
F. MoraA. Lassiter
71’
F. AndradeRight foot shot2-1 (Houston Dynamo)
77’
79’
K. VeldeRight foot shot2-2 (Portland Timbers)
L. EnnaliShot on target
84’
85’
F. MoraFoul
J. McGlynnShot on target
86’
90+3’
90+8’
90+10’
90+12’
K. KelsyShot on target
GuilhermeFoul
90+13’
90+13’
F. SurmanShot on target
90+13’
K. KelsyShot on target
M. BoguszRight foot shot3-2 (Houston Dynamo)
90+15’
Full-time3-2

How the chances added up

Running total of expected goals (xG) for each side through the match. xG rates each chance by how often similar shots are scored. A goal is marked where it was scored.

0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ 105’ HT 1.40 2.52 45+4’ G. Guerra (Portland Timbers), 0-1 45+4’ 62’ Guilherme (Houston Dynamo), 1-1 62’ 77’ F. Andrade (Houston Dynamo), 2-1 77’ 79’ K. Velde (Portland Timbers), 2-2 79’ 90+15’ M. Bogusz (Houston Dynamo), 3-2 90+15’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ 105’ HT 1.40 2.52 45+4’ G. Guerra (Portland Timbers), 0-1 Guerra 45+4’ 62’ Guilherme (Houston Dynamo), 1-1 Guilherme 62’ 77’ F. Andrade (Houston Dynamo), 2-1 Andrade 77’ 79’ K. Velde (Portland Timbers), 2-2 Velde 79’ 90+15’ M. Bogusz (Houston Dynamo), 3-2 Bogusz 90+15’
Houston Dynamo 1.40 xGPortland Timbers 2.52 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Portland Timbers attacking Houston Dynamo attacking 
49’ K. Velde (Portland Timbers), penalty, 0.79 xG, saved 90+13’ F. Surman (Portland Timbers), from a corner, 0.29 xG, saved 90+13’ K. Kelsy (Portland Timbers), from a corner, 0.24 xG, saved 34’ E. Ponce (Houston Dynamo), open play, 0.24 xG, off target 22’ Guilherme (Houston Dynamo), open play, 0.19 xG, blocked 41’ A. Aravena (Portland Timbers), open play, 0.20 xG, blocked 90+12’ I. Smith (Portland Timbers), open play, 0.19 xG, blocked 62’ Guilherme (Houston Dynamo), open play, 0.17 xG, goal 66’ L. Halter (Houston Dynamo), open play, 0.13 xG, off target 69’ A. Lassiter (Portland Timbers), open play, 0.12 xG, off target 27’ G. Guerra (Portland Timbers), from a corner, 0.11 xG, off target 49’ G. Guerra (Portland Timbers), set piece, 0.11 xG, goal 90+11’ B. Bye (Portland Timbers), open play, 0.11 xG, blocked 25’ L. Halter (Houston Dynamo), set piece, 0.09 xG, blocked 51’ H. Herrera (Houston Dynamo), from a corner, 0.09 xG, off target 52’ Guilherme (Houston Dynamo), open play, 0.07 xG, saved 79’ G. Guerra (Portland Timbers), set piece, 0.07 xG, blocked 5’ A. Aravena (Portland Timbers), open play, 0.06 xG, saved 41’ F. Surman (Portland Timbers), from a corner, 0.06 xG, saved 51’ D. Holmes (Houston Dynamo), open play, 0.06 xG, blocked 90’ H. Herrera (Houston Dynamo), open play, 0.06 xG, off target 79’ K. Velde (Portland Timbers), set piece, 0.05 xG, goal 90+15’ M. Bogusz (Houston Dynamo), open play, 0.05 xG, goal 53’ A. Lassiter (Portland Timbers), open play, 0.04 xG, saved 50’ M. Bogusz (Houston Dynamo), open play, 0.04 xG, blocked 84’ L. Ennali (Houston Dynamo), from a corner, 0.04 xG, saved 71’ Guilherme (Houston Dynamo), open play, 0.03 xG, blocked 77’ F. Andrade (Houston Dynamo), open play, 0.03 xG, goal 86’ J. McGlynn (Houston Dynamo), direct free kick, 0.03 xG, saved 90+12’ K. Kelsy (Portland Timbers), open play, 0.03 xG, saved 2’ D. Holmes (Houston Dynamo), from a corner, 0.02 xG, off target 57’ Guilherme (Houston Dynamo), open play, 0.02 xG, blocked 71’ M. Bogusz (Houston Dynamo), open play, 0.02 xG, off target 90+14’ J. Ortíz (Portland Timbers), set piece, 0.02 xG, off target 82’ J. Ortíz (Portland Timbers), set piece, 0.02 xG, blocked 65’ J. McGlynn (Houston Dynamo), from a corner, 0.02 xG, hit the woodwork 49’ K. Velde (Portland Timbers), penalty, 0.79 xG, saved 90+13’ F. Surman (Portland Timbers), from a corner, 0.29 xG, saved 34’ E. Ponce (Houston Dynamo), open play, 0.24 xG, off target 90+13’ K. Kelsy (Portland Timbers), from a corner, 0.24 xG, saved 41’ A. Aravena (Portland Timbers), open play, 0.20 xG, blocked 22’ Guilherme (Houston Dynamo), open play, 0.19 xG, blocked 90+12’ I. Smith (Portland Timbers), open play, 0.19 xG, blocked 62’ Guilherme (Houston Dynamo), open play, 0.17 xG, goal 66’ L. Halter (Houston Dynamo), open play, 0.13 xG, off target 69’ A. Lassiter (Portland Timbers), open play, 0.12 xG, off target 27’ G. Guerra (Portland Timbers), from a corner, 0.11 xG, off target 90+11’ B. Bye (Portland Timbers), open play, 0.11 xG, blocked 49’ G. Guerra (Portland Timbers), set piece, 0.11 xG, goal 25’ L. Halter (Houston Dynamo), set piece, 0.09 xG, blocked 51’ H. Herrera (Houston Dynamo), from a corner, 0.09 xG, off target 79’ G. Guerra (Portland Timbers), set piece, 0.07 xG, blocked 52’ Guilherme (Houston Dynamo), open play, 0.07 xG, saved 41’ F. Surman (Portland Timbers), from a corner, 0.06 xG, saved 51’ D. Holmes (Houston Dynamo), open play, 0.06 xG, blocked 90’ H. Herrera (Houston Dynamo), open play, 0.06 xG, off target 5’ A. Aravena (Portland Timbers), open play, 0.06 xG, saved 79’ K. Velde (Portland Timbers), set piece, 0.05 xG, goal 90+15’ M. Bogusz (Houston Dynamo), open play, 0.05 xG, goal 53’ A. Lassiter (Portland Timbers), open play, 0.04 xG, saved 50’ M. Bogusz (Houston Dynamo), open play, 0.04 xG, blocked 84’ L. Ennali (Houston Dynamo), from a corner, 0.04 xG, saved 86’ J. McGlynn (Houston Dynamo), direct free kick, 0.03 xG, saved 71’ Guilherme (Houston Dynamo), open play, 0.03 xG, blocked 77’ F. Andrade (Houston Dynamo), open play, 0.03 xG, goal 90+12’ K. Kelsy (Portland Timbers), open play, 0.03 xG, saved 2’ D. Holmes (Houston Dynamo), from a corner, 0.02 xG, off target 57’ Guilherme (Houston Dynamo), open play, 0.02 xG, blocked 71’ M. Bogusz (Houston Dynamo), open play, 0.02 xG, off target 90+14’ J. Ortíz (Portland Timbers), set piece, 0.02 xG, off target 82’ J. Ortíz (Portland Timbers), set piece, 0.02 xG, blocked 65’ J. McGlynn (Houston Dynamo), from a corner, 0.02 xG, hit the woodwork
Size shows xG Goal On target Off target or blocked

Hover or tap a shot for the player, minute and xG.

Lineups

Houston Dynamo 3-4-3 Starting XI
Bond
Sviatchenko
Halter 70’
Andrade
Holmes 81’
McGlynn
Samassékou 69’
Ennali 90’
Bogusz
Ponce 46’
Guilherme
Portland Timbers 4-3-3 Starting XI
Pantemis
Bye
Surman
Miller
Fory
Aravena 71’
Chará
Costa 63’
Lassiter 71’
Guerra 90’
Velde

Player stats

Goalkeeper1 player
J. Bond
90′ 6 2 25 2 – – – –
Defenders4 players
E. Sviatchenko
90′ – – – 3 3 32 1 – – –
L. Halter Taken off
70′ 1 1 – 2 1 32 1 – – –
90′ 1 3 – 6 4 37 1 1 – –
A. Resch Came on as a substitute
20′ – – – 3 3 11 – – – –
Midfielders6 players
D. Holmes Taken off
81′ – – 24 – 0.06 6 – 8 1 2 –
90′ – 1 84 4 0.30 2 1 2 – – –
D. Samassékou Taken off
70′ – – 23 1 0.02 1 3 1 2 – –
L. Ennali Taken off
89′ – – 30 2 0.05 – 1 1 – – –
H. Herrera Came on as a substitute
45′ – – 27 1 0.03 – – 1 1 – –
O. Lingr Came on as a substitute
20′ – – 8 – 0.01 – 1 1 – 1 –
Forwards4 players
90′ 1 1 3 1 0.11 0.14 2 5 2 24 –
E. Ponce Taken off
45′ – – 1 – 0.24 0.00 1 3 1 8
90′ 1 1 5 2 0.49 0.14 3 9 2 38
N. Markanich Came on as a substituteSent off
12′ – – – – – 0.00 – – – 2
Came on Taken off Sent off Red is the most in that position for the team

Every player who took the pitch, starters first and then substitutes. A dash means none. xG and xA are expected goals and assists.

Form going into the game

Last five league games before this one, oldest first. Select one to open it.

Previous and next meeting

Shots, expected goals, timeline, lineups, team and player statistics from Bzzoiro Sports Data (sports.bzzoiro.com). Results and odds from football-data.co.uk.