San Diego FC dominated possession at Snapdragon Stadium but couldn't hold on as Portland snatched a 2-1 victory. The hosts were level at the break and controlled the ball for large stretches, creating chances that should have been more clinical. Portland's Kevin Kelsy was the difference maker, his performance earning him man of the match honors as the Timbers turned the tables in the second half despite being second best for much of the contest. It was a frustrating afternoon for San Diego, who had the better of the play but couldn't find the cutting edge when it mattered. Portland took their chances and got out of Dodge with three points, leaving the home crowd wondering how they'd managed to lose a game they'd largely dictated.
The Matchup
Portland Timbers beat San Diego FC 1-2 at Snapdragon Stadium, and the numbers from the match back up how the game played out. Even without the extra share of possession, which finished 67% in favour of San Diego FC, Portland Timbers made the most of the chances that mattered and did enough to see the game out. The shot count told a similar story, with 10 attempts from San Diego FC against 11 from Portland Timbers over the course of the game. San Diego FC had their moments and did not make it easy from start to finish, but ultimately came up short on the day. Small margins like this one tend to add up over a season, and results such as this are often what separates teams in the table further down the line. Here is a closer look at exactly how the two sides compared, statistically.
Man of the Match
Match Statistics
Match Events
| Min | Team | Card | Event | Score |
|---|---|---|---|---|
| 26' | Portland Timbers | Goal — K. Kelsy | 0-1 | |
| 32' | San Diego FC | Goal — A. Dreyer | 1-1 | |
| 59' | San Diego FC | Substitution — I. Pilcher on, W. Eisner off | 1-1 | |
| 63' | San Diego FC | M. Ingvartsen | 1-1 | |
| 69' | Portland Timbers | K. Velde | 1-1 | |
| 72' | San Diego FC | Substitution — D. Vazquez on, L. Morgan off | 1-1 | |
| 72' | San Diego FC | Substitution — A. Godoy on, P. Soma off | 1-1 | |
| 73' | Portland Timbers | Substitution — A. Aravena on, Antony off | 1-1 | |
| 76' | San Diego FC | W. Eisner | 1-1 | |
| 81' | San Diego FC | Substitution — J. Tverskov on, B. Duke off | 1-1 | |
| 81' | San Diego FC | Substitution — O. Verhoeven on, K. Sargeant off | 1-1 | |
| 86' | Portland Timbers | Substitution — C. Bassett on, D. Chara off | 1-1 | |
| 90+7' | Portland Timbers | Substitution — K. Velde on, A. Lassiter off | 1-1 | |
| 90' | Portland Timbers | Goal — A. Bonetig | 1-2 |
San Diego FC vs Portland Timbers Lineups
Looking Ahead
San Diego FC does not have long to wait before getting back out onto the pitch. Their next test comes at home to LA Galaxy, and how they respond after this result will be worth watching. You can follow the build-up and everything you need to know when San Diego FC vs LA Galaxy going to play at 30 August 2026 in Major League Soccer 2026.
Portland Timbers, meanwhile, will already be turning their attention to what comes next. 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.