The Portland Timbers saved their season and stayed alive in the playoffs for at least one more game as they prevailed over San Diego FC in dramatic fashion, winning Game Two in a penalty kick shootout. Kristoffer Velde opened the scoring for Portland before San Diego struck back with Amahl Pellegrino and Chucky Lozano to take back the lead. A late stoppage time equalizer from unlikely hero Gage Guerra sent the match to penalties, where Portland emerged victorious after San Diego missed three straight spot kicks.

Lineups & Prematch
Phil Neville made three changes to his starting XI, two out of necessity and one out of potential opportunity. Jimer Fory was serving his suspension after being shown a red card in Game One, and Neville went with experience at and inserted Kamal Miller. Dario Zuparic slotted into K. Miller's usual CB spot next to Finn Surman. Up top, Kevin Kelsy got the nod over Felipe Mora, in the hopes that Portland could get goals from the starting striker spot again.

The Rose City was blessed with a dry evening, as the rain held off and the sky was instead filled with pink clouds and a dramatic sunset – fitting for a do-or-die scenario in the final Timbers home match of 2025.
With the Park seeing it's first non-Wild Card playoff game action since 2021, the Timbers Army met the moment with a beautiful tifo display paying homage to the "Wet, Cold, Portland November".

Under a shower of fireworks with smoke and sulfur in the air, Game Two of the First Round of the MLS Cup Playoffs kicked off.
Recap & Highlights
The match got off to an absolutely flying start. Knowing that nothing less than a win extended their season, Portland came out with the same kind of determination that defined the middle stages of Game One. Kristoffer Velde, who ended last week's match with a fiery yellow card, was the one to set the tone early.
Velde created the match's first chance after he worked the ball to the sideline and finding David Ayala in the box, where Ayala's off-balance shot was easily saved. Velde punctuated his role as passionate instigator by out-muscling Manu Duah to win a ball and get off a shot that was wide. Kristoff pumped up the crowd afterward, and then had some light pushing and shoving with Duah afterward for good measure.
A few minutes later, he nearly opened the scoring.
8' POST POR – Velde
Portland came within inches to finding the back of the net after a cutback in the box found him, and he slammed a shot off the post. It cemented the opening ten minutes as miles better than the opening ten in Game One, as Portland looked to have the aggression needed to even the series.
But crucially, they couldn't find the opening goal. Meanwhile, they had to deal with the dangerous San Diego FC at the other end.
14' Miss SD – McVey
Off a smartly delivered free kick, Christopher McVey had ab alarmingly free header from the center of the box. Nobody in green was near him, and James Pantemis was rooted to the spot – but thankfully the header went high.
It was a worrying moment for the Timbers, after they surrendered the first goal off a set piece last weekend. As San Diego started to wake up, it felt like the moment for Portland to capitalize off their early-match momentum and score was starting to pass them by.
Well it didn't feel like that to Kristoffer Velde, who at long last finally announced himself to Providence Park with gusto.
18' GOAL TIMBERS! – Velde (1-0)
Long balls over the top worked well for Portland in Game One, and Pantemis pinged a beauty of one from the bak. Antony just outworked his defender to get on the end of it, and he knocked the ball back to the onrushing Velde. The Norwegian took a touch, and absolutely laced a wallop of a shot past CJ Dos Santos and into the back of the net.
At long last, the Timbers newest Designated Player had scored his first goal at Providence Park. As he pumped his arms in celebration, the home crowd roared with a sound seldom heard in 2025.
And the goal came at almost the perfect time, as it gave Portland a vital lead in a must-win game.
With the park rocking, the Timbers came again. In the 21st minute, Velde launched a deep cross to the far post, meant for Kevin Kelsy. The play resulted in a very nasty-looking collision with Kelsy and Dos Santos, with the San Diego 'keeper suffering what appeared to be a very serious looking head/neck injury. Play was stopped for nearly ten minutes while Dos Santos received medical attention. He was thankfully able to sit up and show some responsiveness. While he did get up to standing, he was ultimately stretchered off the field.
Scary injuries are scary injuries, regardless of the color of shirt you wear. We at STF wish CJ Dos Santos the best, and that his injury is not serious and his recovery is smooth.
With San Diego's backup 'keeper now in the goal, the game got back underway. Perhaps due to the lengthy stoppage, or perhaps due to a shift in game state, the pace of the match slowed considerably. The game started to get bogged down in ticky-tack fouls, with San Diego drawing the majority of them (potentially through some actions of a, ahem, dive-y variety). Portland would be whistled for 13 fouls in the first half, compared to San Diego's four.
Due to the lengthy delay due to Dos Santos' injury, there was a minimum of 12 minutes added on at the end of the first half. It would ultimately last 15 minutes. And in the final few of those minutes, San Diego would remind us all why they were the number one seed in the West.
45'+12 Goal San Diego – Pellegrino (1-1)
As they have done in the past two times they played Portland, San Diego carved up Portland's midfield with quick passes, and the Timbers weren't able to track a trailing run from Corey Baird, who burst into the final third. He found Amahl Pellegrino at the top of the box, who took a touch and rifled it past Pantemis into the back of the net.
Finn Surman was slow to react and respond, and no other Timbers defender was on the scene to close down the shot. And so the match was tied.
Three minutes later, it looked like it flipped all the way back the other way when San Diego pounced on a poor pass from Pantemis and Anders Dreyer rifled it past the goalkeeper unfettered.
The match was 2-1, up until VAR took a look and deemed Dreyer to be offside by a toenail-and-a-half. Portland was spared a complete collapse, and went into the locker rooms tied.
HALFTIME: Timbers 1, San Diego FC 1
Intense, fast, loud as heck, breathless (both in good and bad ways), sometimes scintillating, and sometimes confounding. It was an hour of a first half that featured all that playoff soccer promises.

At the start of the second half, San Diego star forward Chucky Lozano subbed into the game. The Mexican national team star was unavailable for Game One, but made his return tonight.
He wasted little time in making his presence felt.
51' Goal San Diego – Lozano (1-2)
Dreyer unleashed a wicked acrobatic shot right at Pantemis. James parried it wide – right to the feet of Lozano. The forward made no mistake as he volleyed it home to give San Diego a one-goal lead. VAR was not there to save Portland this time, despite some shouts that Lozano may have been offside on the initial shot.
But onside he was, and so Portland trailed San Diego by a goal yet again.
Following the goal, Phil Neville made his first roll of the dice with his substitutions.
60' Substitutions POR
ON: Omir Fernandez, Cristhian Paredes
OFF: David Da Costa, David Ayala
It was certainly a decision to sub off your DP midfielder midway through the second half in a must-win game where you are trailing by a goal... but Phil Neville did it anyway. But to his credit, Fernandez and Paredes would provide a much needed push of frantic but concerted energy as soon as they stepped on the field.
The second half then settled into a predictable rhythm: the Timbers throwing bodies forward aggressively in search of an equalizer, and San Diego sitting deeper and seeking to counter attack at pace.
67' Chance POR – Fernandez
Velde, who was a protagonist all night, slung in a wicked cross at pace. Fernandez was first to meet it at the near post, but he sent his snap header just wide.
Neville made more changes just a minute later, hoping to keep his side's legs fresh as they sought to save their season.
68' Substitutions POR
ON: Felipe Mora, Ian Smith
OFF: Kevin Kelsy, Juan Mosquera
74' Chance POR – Velde
An excellent chance for Portland went just begging minutes after the subs came on. The Timbers did well with the ball to carve out a chance with quick passing on the counter, and Mora crossed the ball towards Velde. His diving header looked promising, but went agonizingly wide.
With nothing to lose, the Timbers continued to come forward with a fearlessness that we have barely seen all season. Velde was a menace on the left side, and the likes of Paredes, Fernandez, and Mora brought a buzzing energy which fit the desperation of the game perfectly.
It also should be said that Diego Chara put in yet another vintage performance in the midfield. The Godfather was positioned perfectly to stymie multiple San Diego counters, and he chased down attackers with the ball on more than one occasion. He was a huge reason that Portland stayed in the game, and even had a shot at the death.
79' Substitutions POR
ON: Ariel Lassiter
OFF: Kamal Miller
86' Substitutions POR
ON: Gage Guerra
OFF: Ian Smith
Ariel Lassiter came into the match and brought the level of high energy that was required in this match, adding to Portland's desperate aggressiveness. Portland also were given an extra sub and substitution opportunity due to the Dos Santos injury, and they took advantage by subbing off a sub to bring on Gage Guerra for Smith.
With all of the pieces on the board, the Timbers started to chuck everything they had forward in desperate search of an equalizer.
88' Chance POR – Mora
Pipe was next to come agonizingly close to scoring with a diving header that flashed wide in a similar fashion to both Velde and Fernandez's header. Portland kept huffing and puffing, and it felt inevitable that something was going to go into the back of the net.
But despite numerous opportunities where they came oh so close, nothing seemed to fall. As the match ticked into eight minutes of stoppage time, there was a palpable atmosphere of anxious desperation permeating around Providence Park.
San Diego was bunkering down and weathering the storm. The Timbers were giving it everything they've got. As the clock struck the eighth minute of stoppage time and Portland still couldn't find the back of the net, it might as well have been striking midnight on Portland's season.
The Timbers needed a hero. And one quite literally rose out of nowhere to meet the moment and save Portland's season.
90'+8 GOAL TIMBERS!!! – Guerra (2-2)
One perhaps one of their last forays forward, Ariel Lassiter launched a long throw in towards Paredes. While being clattered into from behind, Paredes managed to get the ball back to Lassiter on the left wing. The substitute lofted a cross towards the back post, where Gage Guerra out-leapt a trio of San Diego defenders to power home a header into the back of the net and send Providence Park into bedlam.
It was the second time that Guerra had rescued Portland late in an elimination game: the rookie also scored the equalizer late on in Portland's 3-2 win over the Tacoma Defiance in the U.S. Open Cup back in May. The goal was remarkably close to a carbon copy of that one too, with Guerra using his athletic ability to find a cross.
But the stage was so much more grand. At the death, in front of the Timbers Army, in a game where a loss meant that Portland's 2025 season was over, Guerra delivered.
The Timbers had rescued the tie, but they weren't out of the woods yet. Next, they had to survive a penalty kick shootout.
FULL TIME: Timbers 2, San Diego 2
Penalty Shootout
Kicking towards the North End, San Diego was first to go. Anders Dreyer calmly slotted his home, but Felipe Mora responded moments later to make affairs 1-1 after one round. Next to go was Lozano, who despite a rain of boos also scored. Paredes stepped up next for Portland, but his kick was just an inch too close to SD 'keeper Pablo Sisniega who got a paw on it. The shootout stood 2-1 in favor of San Diego after two rounds.
Valakari was next for the visitors, with eyes to give San Diego a big advantage. But the magic of the Timbers Army intervened, as the midfielder blasted his kick over the bar. Fernandez had a chance to level affairs for Portland, but Sisniega came up huge again as he made a great reaction save to dive and push Omir's penalty off the cross bar and out. Still 2-1 San Diego after three.
It felt like Portland's season was again close to doom as Ingvarsten shot next for San Diego. But that Timbers Army magic wasn't done, as Ingvarsten too put his kick high and over the bar. Velde was next for Portland, and to nobody's surprise he made no mistake in powering his kick past Sisniega and into the back of the net. The shootout was level 2-2 after four rounds.
With the shootout entering its climatic moment, San Diego's captain Jeppe Tverskov stepped to the spot. That ol' North End magic had one last trick up their sleeve, as Tverskov made it a trio of misses for SD as he blasted his kick off the bar. Antony stepped up for the Timbers, with a chance to win the shootout and Game Two for Portland. Despite a back-half of the season defined by missed chances, the Brazilian didn't miss this one. Antony calmly slotted away his penalty, and won the shootout for Portland 3-2.

PK SHOOTOUT: TIMBERS 3:2 SAN DIEGO – PORTLAND WINS
Down to what felt like their last rites on multiple occasions, the Timbers clawed back to rescue their season. They stay alive for at least one more week, as they force a pivotal Game Three back in San Diego next Sunday. The winner advances. The loser sees their season come to a close.
For Saturday to be the final Timbers game at Providence Park in 2025 felt wholly appropriate, because it wound up being the biggest. After years of leaving the Park for the last time in disgust or disappoint, Portland left it feeling triumphant. The Timbers had outplayed and outlasted the number one team in the West, and earned the right to take this series to the wire.
Who knows when this ride ends, but goshdang if the Timbers haven't made it one hell of a time. Onward.