Skip to MLS data
The Sporting Page Real Analysis. Not Corporate
The Sporting Page
Loading scores…
Connecting to scores…
← Soccer newsMLS · 2026

Houston Dynamo FC vs Portland Timbers

Regular Season

Saturday, Mar 14, 2026 · 8:30 pm EDT

3 – 2FinalFT

Match winner: Houston Dynamo FC

Shell Energy Stadium

Checked Nov 5, 12:30 am ESTRefresh match

Match statistics

Values retain the source’s display and precision. Some source rows labeled % are supplied as decimal ratios; no percentage conversion is inferred.

Supplied statistics for this match only.
StatisticHouston Dynamo FCPortland Timbers
Fouls129
Yellow Cards24
Red Cards10
Offsides03
Corner Kicks106
Saves63
Possession48.351.7
SHOTS1917
ON GOAL69
On Target %0.30.5
Penalty Goals00
Penalty Kicks Taken01
Accurate Passes346386
Passes408453
Pass Completion %0.80.9
Accurate Crosses74
Crosses2919
Cross %0.20.2
Long Balls4542
Accurate Long Balls2420
Long Balls %0.50.5
Blocked Shots65
Effective Tackles64
Tackles108
Tackle %0.60.5
Interceptions124
Effective Clearances2229
Clearances2229

Key events

  1. —
    Kickoff

    First Half begins.

  2. 24'
    Yellow Card

    Kamal Miller (Portland Timbers) is shown the yellow card for a bad foul.

  3. 45'+1'
    Yellow Card

    Ezequiel Ponce (Houston Dynamo FC) is shown the yellow card.

  4. 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).

  5. 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.

  6. 45'+5'
    Yellow Card

    Ariel Lassiter (Portland Timbers) is shown the yellow card.

  7. 45'+8'
    Halftime
  8. 45'
    Substitution

    Substitution, Houston Dynamo FC. Héctor Herrera replaces Ezequiel Ponce.

  9. 45'
    Start 2nd Half
  10. 58'
    Yellow Card

    Jimer Fory (Portland Timbers) is shown the yellow card for a bad foul.

  11. 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.

  12. 63'
    Substitution

    Substitution, Portland Timbers. Joao Ortiz replaces David da Costa.

  13. 69'
    Substitution

    Substitution, Houston Dynamo FC. Agustín Resch replaces Diadié Samassékou.

  14. 70'
    Substitution

    Substitution, Houston Dynamo FC. Ondrej Lingr replaces Lucas Halter because of an injury.

  15. 71'
    Substitution

    Substitution, Portland Timbers. Ian Smith replaces Alexander Aravena.

  16. 71'
    Substitution

    Substitution, Portland Timbers. Felipe Mora replaces Ariel Lassiter.

  17. 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.

  18. 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.

  19. 81'
    Substitution

    Substitution, Houston Dynamo FC. Nick Markanich replaces Duane Holmes.

  20. 85'
    Yellow Card

    Felipe Mora (Portland Timbers) is shown the yellow card for a bad foul.

  21. 90'+3'
    Red Card

    Nick Markanich (Houston Dynamo FC) is shown the red card.

  22. 90'+8'
    Substitution

    Substitution, Houston Dynamo FC. Ibrahim Aliyu replaces Lawrence Ennali.

  23. 90'+10'
    Substitution

    Substitution, Portland Timbers. Kevin Kelsy replaces Gage Guerra.

  24. 90'+13'
    Yellow Card

    Guilherme (Houston Dynamo FC) is shown the yellow card for a bad foul.

  25. 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.

  26. 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

PlayerPosAppGAOGYCRC
31Jonathan BondG100000
5Lucas HalterCD100000
36Felipe AndradeCD-L110000
28Erik SviatchenkoCD-R100000
18Diadie SamassekouCM-L100000
8Jack McGlynnCM-R101000
11Lawrence EnnaliLM100000
14Duane HolmesRM100000
10Ezequiel PonceF100010
20Guilherme AugustoCF-L111010
19Mateusz BoguszCF-R111000

Other listed players

PlayerPosAppGAOGYCRC
1Jimmy MaurerSUB000000
22Matthew AranaSUB000000
34Agustín ReschSUB100000
9Ondrej LingrSUB100000
37Gilberto RiveraSUB000000
17Nicholas MarkanichSUB100001
21Franco NegriSUB000000
24Ibrahim AliyuSUB100000
16Héctor HerreraSUB100000

Portland TimbersFormation 4-3-3

Starting lineup

PlayerPosAppGAOGYCRC
41James PantemisG100000
4Kamal MillerCD-L100010
20Finn SurmanCD-R101000
27Jimer ForyLB100010
5Brandon ByeRB100000
21Diego CharáCM100000
10David Da CostaLM100000
28Alexander AravenaRM100000
88Gage GuerraF110000
99Kristoffer VeldeLF110000
7Ariel LassiterRF100010

Other listed players

PlayerPosAppGAOGYCRC
19Kevin KelsySUB100000
15Eric MillerSUB000000
23Ian SmithSUB100000
16Sawyer JuraSUB000000
80Joao OrtizSUB100000
9Felipe MoraSUB100010
25Trey MuseSUB000000

Commentary

  1. —

    Lineups are announced and players are warming up.

  2. —

    First Half begins.

  3. 2'

    Corner, Houston Dynamo FC. Conceded by Brandon Bye.

  4. 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.

  5. 3'

    Corner, Houston Dynamo FC. Conceded by Jimer Fory.

  6. 3'

    Corner, Houston Dynamo FC. Conceded by Alexander Aravena.

  7. 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.

  8. 5'

    Ezequiel Ponce (Houston Dynamo FC) wins a free kick in the attacking half.

  9. 5'

    Foul by Kamal Miller (Portland Timbers).

  10. 7'

    Foul by Ezequiel Ponce (Houston Dynamo FC).

  11. 7'

    Kamal Miller (Portland Timbers) wins a free kick in the defensive half.

  12. 14'

    Alexander Aravena (Portland Timbers) wins a free kick in the attacking half.

  13. 14'

    Foul by Diadié Samassékou (Houston Dynamo FC).

  14. 22'

    Attempt blocked. Guilherme (Houston Dynamo FC) right footed shot from the centre of the box is blocked. Assisted by Ezequiel Ponce.

  15. 24'

    Foul by Kamal Miller (Portland Timbers).

  16. 24'

    Mateusz Bogusz (Houston Dynamo FC) wins a free kick on the right wing.

  17. 24'

    Kamal Miller (Portland Timbers) is shown the yellow card for a bad foul.

  18. 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.

  19. 25'

    Corner, Houston Dynamo FC. Conceded by Kamal Miller.

  20. 26'

    Corner, Portland Timbers. Conceded by Lawrence Ennali.

  21. 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.

  22. 28'

    Offside, Portland Timbers. Kristoffer Velde is caught offside.

  23. 32'

    Offside, Portland Timbers. Kristoffer Velde is caught offside.

  24. 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.

  25. 35'

    Delay in match because of an injury Guilherme (Houston Dynamo FC).

  26. 36'

    Delay over. They are ready to continue.

  27. 37'

    Offside, Portland Timbers. David da Costa is caught offside.

  28. 40'

    Duane Holmes (Houston Dynamo FC) wins a free kick in the defensive half.

  29. 40'

    Foul by Jimer Fory (Portland Timbers).

  30. 41'

    Attempt blocked. Alexander Aravena (Portland Timbers) right footed shot from the centre of the box is blocked. Assisted by Diego Chará.

  31. 41'

    Corner, Portland Timbers. Conceded by Felipe Andrade.

  32. 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.

  33. 42'

    Corner, Portland Timbers. Conceded by Felipe Andrade.

  34. 43'

    Penalty Portland Timbers. Finn Surman draws a foul in the penalty area.

  35. 43'

    Penalty conceded by Diadié Samassékou (Houston Dynamo FC) after a foul in the penalty area.

  36. 45'

    VAR Decision: Penalty Portland Timbers.

  37. 45'

    Fourth official has announced 6 minutes of added time.

  38. 45'+1'

    Ezequiel Ponce (Houston Dynamo FC) is shown the yellow card.

  39. 45'+4'

    Penalty saved. Kristoffer Velde (Portland Timbers) right footed shot saved in the bottom right corner by Jonathan Bond (Houston Dynamo FC).

  40. 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.

  41. 45'+5'

    Foul by Finn Surman (Portland Timbers).

  42. 45'+5'

    Guilherme (Houston Dynamo FC) wins a free kick in the defensive half.

  43. 45'+5'

    Ariel Lassiter (Portland Timbers) is shown the yellow card.

  44. 45'+6'

    Attempt blocked. Duane Holmes (Houston Dynamo FC) right footed shot from outside the box is blocked. Assisted by Lawrence Ennali.

  45. 45'+7'

    Corner, Portland Timbers. Conceded by Lucas Halter.

  46. 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.

  47. 45'+8'

    First Half ends, Houston Dynamo FC 0, Portland Timbers 1.

  48. 45'

    Second Half begins Houston Dynamo FC 0, Portland Timbers 1.

  49. 45'

    Substitution, Houston Dynamo FC. Héctor Herrera replaces Ezequiel Ponce.

  50. 46'

    Foul by Mateusz Bogusz (Houston Dynamo FC).

  51. 46'

    Kristoffer Velde (Portland Timbers) wins a free kick in the defensive half.

  52. 50'

    Attempt blocked. Mateusz Bogusz (Houston Dynamo FC) right footed shot from the centre of the box is blocked. Assisted by Héctor Herrera.

  53. 50'

    Corner, Houston Dynamo FC. Conceded by Brandon Bye.

  54. 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.

  55. 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.

  56. 53'

    Diego Chará (Portland Timbers) wins a free kick in the defensive half.

  57. 53'

    Foul by Mateusz Bogusz (Houston Dynamo FC).

  58. 54'

    Foul by Lucas Halter (Houston Dynamo FC).

  59. 54'

    Gage Guerra (Portland Timbers) wins a free kick on the right wing.

  60. 57'

    Attempt blocked. Guilherme (Houston Dynamo FC) right footed shot from outside the box is blocked. Assisted by Lawrence Ennali.

  61. 58'

    Felipe Andrade (Houston Dynamo FC) wins a free kick on the left wing.

  62. 58'

    Foul by Gage Guerra (Portland Timbers).

  63. 58'

    Duane Holmes (Houston Dynamo FC) wins a free kick on the right wing.

  64. 58'

    Foul by Jimer Fory (Portland Timbers).

  65. 58'

    Jimer Fory (Portland Timbers) is shown the yellow card for a bad foul.

  66. 60'

    Alexander Aravena (Portland Timbers) wins a free kick in the defensive half.

  67. 60'

    Foul by Duane Holmes (Houston Dynamo FC).

  68. 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.

  69. 63'

    Substitution, Portland Timbers. Joao Ortiz replaces David da Costa.

  70. 65'

    Corner, Houston Dynamo FC. Conceded by Jimer Fory.

  71. 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.

  72. 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.

  73. 67'

    Delay in match because of an injury Lucas Halter (Houston Dynamo FC).

  74. 68'

    Delay over. They are ready to continue.

  75. 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.

  76. 69'

    Substitution, Houston Dynamo FC. Agustín Resch replaces Diadié Samassékou.

  77. 70'

    Substitution, Houston Dynamo FC. Ondrej Lingr replaces Lucas Halter because of an injury.

  78. 70'

    Alexander Aravena (Portland Timbers) wins a free kick in the defensive half.

  79. 70'

    Foul by Héctor Herrera (Houston Dynamo FC).

  80. 71'

    Attempt blocked. Guilherme (Houston Dynamo FC) right footed shot from the left side of the box is blocked. Assisted by Jonathan Bond.

  81. 71'

    Attempt missed. Mateusz Bogusz (Houston Dynamo FC) right footed shot from outside the box is too high. Assisted by Jack McGlynn.

  82. 71'

    Substitution, Portland Timbers. Ian Smith replaces Alexander Aravena.

  83. 71'

    Substitution, Portland Timbers. Felipe Mora replaces Ariel Lassiter.

  84. 74'

    Foul by Erik Sviatchenko (Houston Dynamo FC).

  85. 74'

    Kristoffer Velde (Portland Timbers) wins a free kick in the attacking half.

  86. 75'

    Foul by Jimer Fory (Portland Timbers).

  87. 75'

    Ondrej Lingr (Houston Dynamo FC) wins a free kick in the defensive half.

  88. 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.

  89. 79'

    Attempt blocked. Gage Guerra (Portland Timbers) left footed shot from the centre of the box is blocked. Assisted by Ian Smith.

  90. 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.

  91. 81'

    Substitution, Houston Dynamo FC. Nick Markanich replaces Duane Holmes.

  92. 82'

    Attempt blocked. Joao Ortiz (Portland Timbers) right footed shot from outside the box is blocked.

  93. 82'

    Felipe Mora (Portland Timbers) wins a free kick in the defensive half.

  94. 82'

    Foul by Felipe Andrade (Houston Dynamo FC).

  95. 83'

    Foul by Kristoffer Velde (Portland Timbers).

  96. 83'

    Mateusz Bogusz (Houston Dynamo FC) wins a free kick on the right wing.

  97. 84'

    Corner, Houston Dynamo FC. Conceded by Brandon Bye.

  98. 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.

  99. 85'

    Foul by Felipe Mora (Portland Timbers).

  100. 85'

    Guilherme (Houston Dynamo FC) wins a free kick in the attacking half.

  101. 85'

    Felipe Mora (Portland Timbers) is shown the yellow card for a bad foul.

  102. 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).

  103. 86'

    Corner, Houston Dynamo FC. Conceded by James Pantemis.

  104. 88'

    Corner, Houston Dynamo FC. Conceded by Jimer Fory.

  105. 89'

    Corner, Houston Dynamo FC. Conceded by Jimer Fory.

  106. 90'

    Attempt missed. Héctor Herrera (Houston Dynamo FC) right footed shot from outside the box is too high.

  107. 90'

    Fourth official has announced 9 minutes of added time.

  108. 90'+3'

    Foul by Nick Markanich (Houston Dynamo FC).

  109. 90'+3'

    James Pantemis (Portland Timbers) wins a free kick in the defensive half.

  110. 90'+3'

    Delay in match because of an injury James Pantemis (Portland Timbers).

  111. 90'+3'

    Nick Markanich (Houston Dynamo FC) is shown the red card.

  112. 90'+8'

    Substitution, Houston Dynamo FC. Ibrahim Aliyu replaces Lawrence Ennali.

  113. 90'+9'

    Delay over. They are ready to continue.

  114. 90'+10'

    Substitution, Portland Timbers. Kevin Kelsy replaces Gage Guerra.

  115. 90'+11'

    Attempt blocked. Brandon Bye (Portland Timbers) right footed shot from the right side of the box is blocked. Assisted by Felipe Mora.

  116. 90'+11'

    Corner, Portland Timbers. Conceded by Ibrahim Aliyu.

  117. 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.

  118. 90'+12'

    Attempt blocked. Ian Smith (Portland Timbers) header from the right side of the six yard box is blocked.

  119. 90'+12'

    Corner, Portland Timbers. Conceded by Ondrej Lingr.

  120. 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).

  121. 90'+13'

    Attempt blocked. Finn Surman (Portland Timbers) right footed shot from the right side of the six yard box is blocked.

  122. 90'+13'

    Foul by Guilherme (Houston Dynamo FC).

  123. 90'+13'

    Kristoffer Velde (Portland Timbers) wins a free kick on the right wing.

  124. 90'+13'

    Guilherme (Houston Dynamo FC) is shown the yellow card for a bad foul.

  125. 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.

  126. 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.

  127. 90'+18'

    Second Half ends, Houston Dynamo FC 3, Portland Timbers 2.

  128. —

    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 —.