Houston Dynamo FC vs Portland Timbers
Regular Season
Saturday, Mar 14, 2026 · 8:30 pm EDT
Match winner: Houston Dynamo FC
Shell Energy Stadium
Match statistics
Values retain the source’s display and precision. Some source rows labeled % are supplied as decimal ratios; no percentage conversion is inferred.
| Statistic | Houston Dynamo FC | Portland Timbers |
|---|---|---|
| Fouls | 12 | 9 |
| Yellow Cards | 2 | 4 |
| Red Cards | 1 | 0 |
| Offsides | 0 | 3 |
| Corner Kicks | 10 | 6 |
| Saves | 6 | 3 |
| Possession | 48.3 | 51.7 |
| SHOTS | 19 | 17 |
| ON GOAL | 6 | 9 |
| On Target % | 0.3 | 0.5 |
| Penalty Goals | 0 | 0 |
| Penalty Kicks Taken | 0 | 1 |
| Accurate Passes | 346 | 386 |
| Passes | 408 | 453 |
| Pass Completion % | 0.8 | 0.9 |
| Accurate Crosses | 7 | 4 |
| Crosses | 29 | 19 |
| Cross % | 0.2 | 0.2 |
| Long Balls | 45 | 42 |
| Accurate Long Balls | 24 | 20 |
| Long Balls % | 0.5 | 0.5 |
| Blocked Shots | 6 | 5 |
| Effective Tackles | 6 | 4 |
| Tackles | 10 | 8 |
| Tackle % | 0.6 | 0.5 |
| Interceptions | 12 | 4 |
| Effective Clearances | 22 | 29 |
| Clearances | 22 | 29 |
Key events
- —Kickoff
First Half begins.
- 24'Yellow Card
Kamal Miller (Portland Timbers) is shown the yellow card for a bad foul.
- 45'+1'Yellow Card
Ezequiel Ponce (Houston Dynamo FC) is shown the yellow card.
- 45'+4'Penalty - Saved
Penalty saved. Kristoffer Velde (Portland Timbers) right footed shot saved in the bottom right corner by Jonathan Bond (Houston Dynamo FC).
- 45'+4'Goal
Goal! Houston Dynamo FC 0, Portland Timbers 1. Gage Guerra (Portland Timbers) right footed shot from the centre of the box to the bottom right corner following a set piece situation.
- 45'+5'Yellow Card
Ariel Lassiter (Portland Timbers) is shown the yellow card.
- 45'+8'Halftime
- 45'Substitution
Substitution, Houston Dynamo FC. Héctor Herrera replaces Ezequiel Ponce.
- 45'Start 2nd Half
- 58'Yellow Card
Jimer Fory (Portland Timbers) is shown the yellow card for a bad foul.
- 62'Goal - Header
Goal! Houston Dynamo FC 1, Portland Timbers 1. Guilherme (Houston Dynamo FC) header from the centre of the box to the bottom right corner. Assisted by Mateusz Bogusz with a cross.
- 63'Substitution
Substitution, Portland Timbers. Joao Ortiz replaces David da Costa.
- 69'Substitution
Substitution, Houston Dynamo FC. Agustín Resch replaces Diadié Samassékou.
- 70'Substitution
Substitution, Houston Dynamo FC. Ondrej Lingr replaces Lucas Halter because of an injury.
- 71'Substitution
Substitution, Portland Timbers. Ian Smith replaces Alexander Aravena.
- 71'Substitution
Substitution, Portland Timbers. Felipe Mora replaces Ariel Lassiter.
- 77'Goal
Goal! Houston Dynamo FC 2, Portland Timbers 1. Felipe Andrade (Houston Dynamo FC) right footed shot from outside the box to the bottom right corner. Assisted by Guilherme.
- 79'Goal
Goal! Houston Dynamo FC 2, Portland Timbers 2. Kristoffer Velde (Portland Timbers) right footed shot from the centre of the box to the bottom right corner. Assisted by Finn Surman.
- 81'Substitution
Substitution, Houston Dynamo FC. Nick Markanich replaces Duane Holmes.
- 85'Yellow Card
Felipe Mora (Portland Timbers) is shown the yellow card for a bad foul.
- 90'+3'Red Card
Nick Markanich (Houston Dynamo FC) is shown the red card.
- 90'+8'Substitution
Substitution, Houston Dynamo FC. Ibrahim Aliyu replaces Lawrence Ennali.
- 90'+10'Substitution
Substitution, Portland Timbers. Kevin Kelsy replaces Gage Guerra.
- 90'+13'Yellow Card
Guilherme (Houston Dynamo FC) is shown the yellow card for a bad foul.
- 90'+15'Goal
Goal! Houston Dynamo FC 3, Portland Timbers 2. Mateusz Bogusz (Houston Dynamo FC) right footed shot from the centre of the box to the bottom right corner. Assisted by Jack McGlynn.
- 90'+18'End Regular Time
Second Half ends, Houston Dynamo FC 3, Portland Timbers 2.
Lineups
Players stay with their supplied roster club. Other listed players may be unused; App records source appearances, not the number of names listed. An own goal is credited in the event as supplied.
Houston Dynamo FCFormation 3-4-3
Starting lineup
| Player | Pos | App | G | A | OG | YC | RC |
|---|---|---|---|---|---|---|---|
| 31Jonathan Bond | G | 1 | 0 | 0 | 0 | 0 | 0 |
| 5Lucas Halter | CD | 1 | 0 | 0 | 0 | 0 | 0 |
| 36Felipe Andrade | CD-L | 1 | 1 | 0 | 0 | 0 | 0 |
| 28Erik Sviatchenko | CD-R | 1 | 0 | 0 | 0 | 0 | 0 |
| 18Diadie Samassekou | CM-L | 1 | 0 | 0 | 0 | 0 | 0 |
| 8Jack McGlynn | CM-R | 1 | 0 | 1 | 0 | 0 | 0 |
| 11Lawrence Ennali | LM | 1 | 0 | 0 | 0 | 0 | 0 |
| 14Duane Holmes | RM | 1 | 0 | 0 | 0 | 0 | 0 |
| 10Ezequiel Ponce | F | 1 | 0 | 0 | 0 | 1 | 0 |
| 20Guilherme Augusto | CF-L | 1 | 1 | 1 | 0 | 1 | 0 |
| 19Mateusz Bogusz | CF-R | 1 | 1 | 1 | 0 | 0 | 0 |
Other listed players
| Player | Pos | App | G | A | OG | YC | RC |
|---|---|---|---|---|---|---|---|
| 1Jimmy Maurer | SUB | 0 | 0 | 0 | 0 | 0 | 0 |
| 22Matthew Arana | SUB | 0 | 0 | 0 | 0 | 0 | 0 |
| 34Agustín Resch | SUB | 1 | 0 | 0 | 0 | 0 | 0 |
| 9Ondrej Lingr | SUB | 1 | 0 | 0 | 0 | 0 | 0 |
| 37Gilberto Rivera | SUB | 0 | 0 | 0 | 0 | 0 | 0 |
| 17Nicholas Markanich | SUB | 1 | 0 | 0 | 0 | 0 | 1 |
| 21Franco Negri | SUB | 0 | 0 | 0 | 0 | 0 | 0 |
| 24Ibrahim Aliyu | SUB | 1 | 0 | 0 | 0 | 0 | 0 |
| 16Héctor Herrera | SUB | 1 | 0 | 0 | 0 | 0 | 0 |
Portland TimbersFormation 4-3-3
Starting lineup
| Player | Pos | App | G | A | OG | YC | RC |
|---|---|---|---|---|---|---|---|
| 41James Pantemis | G | 1 | 0 | 0 | 0 | 0 | 0 |
| 4Kamal Miller | CD-L | 1 | 0 | 0 | 0 | 1 | 0 |
| 20Finn Surman | CD-R | 1 | 0 | 1 | 0 | 0 | 0 |
| 27Jimer Fory | LB | 1 | 0 | 0 | 0 | 1 | 0 |
| 5Brandon Bye | RB | 1 | 0 | 0 | 0 | 0 | 0 |
| 21Diego Chará | CM | 1 | 0 | 0 | 0 | 0 | 0 |
| 10David Da Costa | LM | 1 | 0 | 0 | 0 | 0 | 0 |
| 28Alexander Aravena | RM | 1 | 0 | 0 | 0 | 0 | 0 |
| 88Gage Guerra | F | 1 | 1 | 0 | 0 | 0 | 0 |
| 99Kristoffer Velde | LF | 1 | 1 | 0 | 0 | 0 | 0 |
| 7Ariel Lassiter | RF | 1 | 0 | 0 | 0 | 1 | 0 |
Other listed players
| Player | Pos | App | G | A | OG | YC | RC |
|---|---|---|---|---|---|---|---|
| 19Kevin Kelsy | SUB | 1 | 0 | 0 | 0 | 0 | 0 |
| 15Eric Miller | SUB | 0 | 0 | 0 | 0 | 0 | 0 |
| 23Ian Smith | SUB | 1 | 0 | 0 | 0 | 0 | 0 |
| 16Sawyer Jura | SUB | 0 | 0 | 0 | 0 | 0 | 0 |
| 80Joao Ortiz | SUB | 1 | 0 | 0 | 0 | 0 | 0 |
| 9Felipe Mora | SUB | 1 | 0 | 0 | 0 | 1 | 0 |
| 25Trey Muse | SUB | 0 | 0 | 0 | 0 | 0 | 0 |
Commentary
- —
Lineups are announced and players are warming up.
- —
First Half begins.
- 2'
Corner, Houston Dynamo FC. Conceded by Brandon Bye.
- 2'
Attempt missed. Duane Holmes (Houston Dynamo FC) right footed shot from the right side of the box misses to the left following a corner.
- 3'
Corner, Houston Dynamo FC. Conceded by Jimer Fory.
- 3'
Corner, Houston Dynamo FC. Conceded by Alexander Aravena.
- 4'
Attempt saved. Alexander Aravena (Portland Timbers) right footed shot from outside the box is saved in the bottom left corner by Jonathan Bond (Houston Dynamo FC). Assisted by David da Costa.
- 5'
Ezequiel Ponce (Houston Dynamo FC) wins a free kick in the attacking half.
- 5'
Foul by Kamal Miller (Portland Timbers).
- 7'
Foul by Ezequiel Ponce (Houston Dynamo FC).
- 7'
Kamal Miller (Portland Timbers) wins a free kick in the defensive half.
- 14'
Alexander Aravena (Portland Timbers) wins a free kick in the attacking half.
- 14'
Foul by Diadié Samassékou (Houston Dynamo FC).
- 22'
Attempt blocked. Guilherme (Houston Dynamo FC) right footed shot from the centre of the box is blocked. Assisted by Ezequiel Ponce.
- 24'
Foul by Kamal Miller (Portland Timbers).
- 24'
Mateusz Bogusz (Houston Dynamo FC) wins a free kick on the right wing.
- 24'
Kamal Miller (Portland Timbers) is shown the yellow card for a bad foul.
- 25'
Attempt blocked. Lucas Halter (Houston Dynamo FC) right footed shot from outside the box is blocked. Assisted by Mateusz Bogusz with a headed pass.
- 25'
Corner, Houston Dynamo FC. Conceded by Kamal Miller.
- 26'
Corner, Portland Timbers. Conceded by Lawrence Ennali.
- 27'
Attempt missed. Gage Guerra (Portland Timbers) header from the centre of the box misses to the left. Assisted by David da Costa following a corner.
- 28'
Offside, Portland Timbers. Kristoffer Velde is caught offside.
- 32'
Offside, Portland Timbers. Kristoffer Velde is caught offside.
- 34'
Attempt missed. Ezequiel Ponce (Houston Dynamo FC) left footed shot from the centre of the box is close, but misses to the left. Assisted by Guilherme following a fast break.
- 35'
Delay in match because of an injury Guilherme (Houston Dynamo FC).
- 36'
Delay over. They are ready to continue.
- 37'
Offside, Portland Timbers. David da Costa is caught offside.
- 40'
Duane Holmes (Houston Dynamo FC) wins a free kick in the defensive half.
- 40'
Foul by Jimer Fory (Portland Timbers).
- 41'
Attempt blocked. Alexander Aravena (Portland Timbers) right footed shot from the centre of the box is blocked. Assisted by Diego Chará.
- 41'
Corner, Portland Timbers. Conceded by Felipe Andrade.
- 41'
Attempt saved. Finn Surman (Portland Timbers) header from the centre of the box is saved in the top right corner by Jonathan Bond (Houston Dynamo FC). Assisted by Alexander Aravena.
- 42'
Corner, Portland Timbers. Conceded by Felipe Andrade.
- 43'
Penalty Portland Timbers. Finn Surman draws a foul in the penalty area.
- 43'
Penalty conceded by Diadié Samassékou (Houston Dynamo FC) after a foul in the penalty area.
- 45'
VAR Decision: Penalty Portland Timbers.
- 45'
Fourth official has announced 6 minutes of added time.
- 45'+1'
Ezequiel Ponce (Houston Dynamo FC) is shown the yellow card.
- 45'+4'
Penalty saved. Kristoffer Velde (Portland Timbers) right footed shot saved in the bottom right corner by Jonathan Bond (Houston Dynamo FC).
- 45'+4'
Goal! Houston Dynamo FC 0, Portland Timbers 1. Gage Guerra (Portland Timbers) right footed shot from the centre of the box to the bottom right corner following a set piece situation.
- 45'+5'
Foul by Finn Surman (Portland Timbers).
- 45'+5'
Guilherme (Houston Dynamo FC) wins a free kick in the defensive half.
- 45'+5'
Ariel Lassiter (Portland Timbers) is shown the yellow card.
- 45'+6'
Attempt blocked. Duane Holmes (Houston Dynamo FC) right footed shot from outside the box is blocked. Assisted by Lawrence Ennali.
- 45'+7'
Corner, Portland Timbers. Conceded by Lucas Halter.
- 45'+8'
Attempt saved. Ariel Lassiter (Portland Timbers) left footed shot from outside the box is saved in the centre of the goal by Jonathan Bond (Houston Dynamo FC). Assisted by David da Costa.
- 45'+8'
First Half ends, Houston Dynamo FC 0, Portland Timbers 1.
- 45'
Second Half begins Houston Dynamo FC 0, Portland Timbers 1.
- 45'
Substitution, Houston Dynamo FC. Héctor Herrera replaces Ezequiel Ponce.
- 46'
Foul by Mateusz Bogusz (Houston Dynamo FC).
- 46'
Kristoffer Velde (Portland Timbers) wins a free kick in the defensive half.
- 50'
Attempt blocked. Mateusz Bogusz (Houston Dynamo FC) right footed shot from the centre of the box is blocked. Assisted by Héctor Herrera.
- 50'
Corner, Houston Dynamo FC. Conceded by Brandon Bye.
- 51'
Attempt missed. Héctor Herrera (Houston Dynamo FC) header from the centre of the box is close, but misses to the left. Assisted by Jack McGlynn with a cross following a corner.
- 52'
Attempt saved. Guilherme (Houston Dynamo FC) header from the centre of the box is saved in the top left corner by James Pantemis (Portland Timbers). Assisted by Erik Sviatchenko with a cross.
- 53'
Diego Chará (Portland Timbers) wins a free kick in the defensive half.
- 53'
Foul by Mateusz Bogusz (Houston Dynamo FC).
- 54'
Foul by Lucas Halter (Houston Dynamo FC).
- 54'
Gage Guerra (Portland Timbers) wins a free kick on the right wing.
- 57'
Attempt blocked. Guilherme (Houston Dynamo FC) right footed shot from outside the box is blocked. Assisted by Lawrence Ennali.
- 58'
Felipe Andrade (Houston Dynamo FC) wins a free kick on the left wing.
- 58'
Foul by Gage Guerra (Portland Timbers).
- 58'
Duane Holmes (Houston Dynamo FC) wins a free kick on the right wing.
- 58'
Foul by Jimer Fory (Portland Timbers).
- 58'
Jimer Fory (Portland Timbers) is shown the yellow card for a bad foul.
- 60'
Alexander Aravena (Portland Timbers) wins a free kick in the defensive half.
- 60'
Foul by Duane Holmes (Houston Dynamo FC).
- 62'
Goal! Houston Dynamo FC 1, Portland Timbers 1. Guilherme (Houston Dynamo FC) header from the centre of the box to the bottom right corner. Assisted by Mateusz Bogusz with a cross.
- 63'
Substitution, Portland Timbers. Joao Ortiz replaces David da Costa.
- 65'
Corner, Houston Dynamo FC. Conceded by Jimer Fory.
- 65'
Jack McGlynn (Houston Dynamo FC) hits the bar with a left footed shot from outside the box. Assisted by Diadié Samassékou following a corner.
- 66'
Attempt missed. Lucas Halter (Houston Dynamo FC) header from the centre of the box misses to the right. Assisted by Erik Sviatchenko with a cross.
- 67'
Delay in match because of an injury Lucas Halter (Houston Dynamo FC).
- 68'
Delay over. They are ready to continue.
- 69'
Attempt missed. Ariel Lassiter (Portland Timbers) left footed shot from the right side of the six yard box is close, but misses to the right. Assisted by Jimer Fory with a cross.
- 69'
Substitution, Houston Dynamo FC. Agustín Resch replaces Diadié Samassékou.
- 70'
Substitution, Houston Dynamo FC. Ondrej Lingr replaces Lucas Halter because of an injury.
- 70'
Alexander Aravena (Portland Timbers) wins a free kick in the defensive half.
- 70'
Foul by Héctor Herrera (Houston Dynamo FC).
- 71'
Attempt blocked. Guilherme (Houston Dynamo FC) right footed shot from the left side of the box is blocked. Assisted by Jonathan Bond.
- 71'
Attempt missed. Mateusz Bogusz (Houston Dynamo FC) right footed shot from outside the box is too high. Assisted by Jack McGlynn.
- 71'
Substitution, Portland Timbers. Ian Smith replaces Alexander Aravena.
- 71'
Substitution, Portland Timbers. Felipe Mora replaces Ariel Lassiter.
- 74'
Foul by Erik Sviatchenko (Houston Dynamo FC).
- 74'
Kristoffer Velde (Portland Timbers) wins a free kick in the attacking half.
- 75'
Foul by Jimer Fory (Portland Timbers).
- 75'
Ondrej Lingr (Houston Dynamo FC) wins a free kick in the defensive half.
- 77'
Goal! Houston Dynamo FC 2, Portland Timbers 1. Felipe Andrade (Houston Dynamo FC) right footed shot from outside the box to the bottom right corner. Assisted by Guilherme.
- 79'
Attempt blocked. Gage Guerra (Portland Timbers) left footed shot from the centre of the box is blocked. Assisted by Ian Smith.
- 79'
Goal! Houston Dynamo FC 2, Portland Timbers 2. Kristoffer Velde (Portland Timbers) right footed shot from the centre of the box to the bottom right corner. Assisted by Finn Surman.
- 81'
Substitution, Houston Dynamo FC. Nick Markanich replaces Duane Holmes.
- 82'
Attempt blocked. Joao Ortiz (Portland Timbers) right footed shot from outside the box is blocked.
- 82'
Felipe Mora (Portland Timbers) wins a free kick in the defensive half.
- 82'
Foul by Felipe Andrade (Houston Dynamo FC).
- 83'
Foul by Kristoffer Velde (Portland Timbers).
- 83'
Mateusz Bogusz (Houston Dynamo FC) wins a free kick on the right wing.
- 84'
Corner, Houston Dynamo FC. Conceded by Brandon Bye.
- 84'
Attempt saved. Lawrence Ennali (Houston Dynamo FC) left footed shot from the left side of the box is saved in the bottom right corner by James Pantemis (Portland Timbers). Assisted by Guilherme.
- 85'
Foul by Felipe Mora (Portland Timbers).
- 85'
Guilherme (Houston Dynamo FC) wins a free kick in the attacking half.
- 85'
Felipe Mora (Portland Timbers) is shown the yellow card for a bad foul.
- 86'
Attempt saved. Jack McGlynn (Houston Dynamo FC) left footed shot from outside the box is saved in the bottom left corner by James Pantemis (Portland Timbers).
- 86'
Corner, Houston Dynamo FC. Conceded by James Pantemis.
- 88'
Corner, Houston Dynamo FC. Conceded by Jimer Fory.
- 89'
Corner, Houston Dynamo FC. Conceded by Jimer Fory.
- 90'
Attempt missed. Héctor Herrera (Houston Dynamo FC) right footed shot from outside the box is too high.
- 90'
Fourth official has announced 9 minutes of added time.
- 90'+3'
Foul by Nick Markanich (Houston Dynamo FC).
- 90'+3'
James Pantemis (Portland Timbers) wins a free kick in the defensive half.
- 90'+3'
Delay in match because of an injury James Pantemis (Portland Timbers).
- 90'+3'
Nick Markanich (Houston Dynamo FC) is shown the red card.
- 90'+8'
Substitution, Houston Dynamo FC. Ibrahim Aliyu replaces Lawrence Ennali.
- 90'+9'
Delay over. They are ready to continue.
- 90'+10'
Substitution, Portland Timbers. Kevin Kelsy replaces Gage Guerra.
- 90'+11'
Attempt blocked. Brandon Bye (Portland Timbers) right footed shot from the right side of the box is blocked. Assisted by Felipe Mora.
- 90'+11'
Corner, Portland Timbers. Conceded by Ibrahim Aliyu.
- 90'+12'
Attempt saved. Kevin Kelsy (Portland Timbers) header from the centre of the box is saved in the bottom right corner by Jonathan Bond (Houston Dynamo FC). Assisted by Joao Ortiz with a cross.
- 90'+12'
Attempt blocked. Ian Smith (Portland Timbers) header from the right side of the six yard box is blocked.
- 90'+12'
Corner, Portland Timbers. Conceded by Ondrej Lingr.
- 90'+13'
Attempt saved. Kevin Kelsy (Portland Timbers) right footed shot from very close range is saved in the bottom right corner by Jonathan Bond (Houston Dynamo FC).
- 90'+13'
Attempt blocked. Finn Surman (Portland Timbers) right footed shot from the right side of the six yard box is blocked.
- 90'+13'
Foul by Guilherme (Houston Dynamo FC).
- 90'+13'
Kristoffer Velde (Portland Timbers) wins a free kick on the right wing.
- 90'+13'
Guilherme (Houston Dynamo FC) is shown the yellow card for a bad foul.
- 90'+14'
Attempt missed. Joao Ortiz (Portland Timbers) right footed shot from outside the box is high and wide to the right following a set piece situation.
- 90'+15'
Goal! Houston Dynamo FC 3, Portland Timbers 2. Mateusz Bogusz (Houston Dynamo FC) right footed shot from the centre of the box to the bottom right corner. Assisted by Jack McGlynn.
- 90'+18'
Second Half ends, Houston Dynamo FC 3, Portland Timbers 2.
- —
Match ends, Houston Dynamo FC 3, Portland Timbers 2.
Sources & data scope
Supplied match statistics, events and lineups. Missing components remain unavailable; preview season aggregates are excluded from match statistics.
- ESPN source ↗ · Checked Nov 5, 2026, 12:30 am ESTSupplied match statistics, events and lineups. Missing components remain unavailable; preview season aggregates are excluded from match statistics.
Times are Eastern Time. A selected match date does not rewind the current table or roster. Missing values are shown as —.

