Houston came from behind to edge Portland in a thrilling encounter at Shell Energy Stadium, eventually running out 3-2 winners after falling behind at halftime. The Timbers had the better of the opening period to take a one-goal lead into the break, but the Dynamo turned it around with a stronger second-half showing. Guilherme was the standout performer, earning man of the match honors with a dominant display that helped shift the momentum when it mattered most. The hosts finished with more attempts on goal and pressed hard down the stretch, earning ten corners as they hunted for a winning margin. It was a scrappy, competitive affair rather than a masterclass, but Houston's ability to respond after going down showed real character. Three points on home turf keeps them in the mix, though Portland will feel they should have made their early dominance count.
The Matchup
Houston Dynamo 3-2 Portland Timbers was the final score at Shell Energy Stadium, in a game where Houston Dynamo did enough across the ninety minutes to deserve the three points. Houston Dynamo also had the better share of the ball, holding 48% possession, which usually goes hand in hand with the extra control a winning side tends to show. The shot count told a similar story, with 19 attempts from Houston Dynamo against 17 from Portland Timbers over the course of the game. It was not always comfortable for Houston Dynamo, and Portland Timbers pushed for a way back into the game, but the result stood. Games like this can carry real weight later in the season, so this is a scoreline worth remembering. Below is a closer look at how the match broke down, statistically.
Man of the Match
Match Statistics
Match Events
| Min | Team | Card | Event | Score |
|---|---|---|---|---|
| 24' | Portland Timbers | Kamal Miller | 0-0 | |
| 45+1' | Houston Dynamo | Ezequiel Ponce | 0-0 | |
| 45+4' | Portland Timbers | Goal — Kristoffer Velde | 0-1 | |
| 45+5' | Portland Timbers | Ariel Lassiter | 0-1 | |
| 45' | Portland Timbers | Goal — G. Guerra | 0-2 | |
| 46' | Houston Dynamo | Substitution — E. Ponce on, H. Herrera off | 0-2 | |
| 58' | Portland Timbers | Jímer Fory | 0-2 | |
| 62' | Houston Dynamo | Goal — Guilherme (assist: M. Bogusz) | 1-2 | |
| 63' | Portland Timbers | Substitution — D. Da Costa on, J. Ortiz off | 1-2 | |
| 69' | Houston Dynamo | Substitution — D. Samassekou on, O. Lingr off | 1-2 | |
| 70' | Houston Dynamo | Substitution — Lucas Halter on, A. Resch off | 1-2 | |
| 71' | Portland Timbers | Substitution — A. Lassiter on, F. Mora off | 1-2 | |
| 71' | Portland Timbers | Substitution — A. Aravena on, I. Smith off | 1-2 | |
| 77' | Houston Dynamo | Goal — Felipe Andrade (assist: Guilherme) | 2-2 | |
| 80' | Portland Timbers | Goal — K. Velde (assist: F. Surman) | 2-3 | |
| 81' | Houston Dynamo | Substitution — D. Holmes on, N. Markanich off | 2-3 | |
| 85' | Portland Timbers | Felipe Mora | 2-3 | |
| 90+13' | Houston Dynamo | Guilherme | 2-3 | |
| 90+3' | Houston Dynamo | Nick Markanich | 2-3 | |
| 90+8' | Houston Dynamo | Substitution — L. Ennali on, I. Aliyu off | 2-3 | |
| 90+10' | Portland Timbers | Substitution — G. Guerra on, K. Kelsy off | 2-3 | |
| 90' | Houston Dynamo | Goal — M. Bogusz (assist: J. McGlynn) | 3-3 |
Houston Dynamo vs Portland Timbers Lineups
Looking Ahead
Houston Dynamo have a quick chance to build on this result. Their next test comes at home to San Jose Earthquakes, and how they respond after this result will be worth watching. You can follow the build-up and everything you need to know when Houston Dynamo vs San Jose Earthquakes going to play at 30 August 2026 in Major League Soccer 2026.
Portland Timbers, meanwhile, does not have long to wait before getting back out onto the pitch. They are next in action at home to Austin FC, a game that will give an early sense of how they carry this result forward. Full details are here: Portland Timbers vs Austin FC going to play at 30 August 2026 in Major League Soccer 2026.