The Ray of Sunshine
The Portland Timbers have won their first playoff game since December 4th, 2021. On that Saturday four years ago, Real Salt Lake fell victim to a Timbers team holding all the momentum from the 5-game winning streak that led them to the Western Conference Final. Tonight was different. The Timbers stumbled and tripped into the Wild Card Game, but they rose to the occasion in a major way.
Recap
It only took nine minutes for the shenanigans to start.
A David Da Costa cross arced towards the back post, leading to an aerial duel between Alexandros Katranis and Antony. Katranis leaped into the air and was slightly nudged by Antony while airborne. That cross hit Katranis’ outstretched hand but center referee Guido Gonzales Jr immediately whistled for a RSL free kick.
In real time, Antony’s contact was negligible. I think Katranis is looking for contact and changes his occupation to salesman in the middle of the jump. I don’t think there’s enough contact to definitively call a foul on Antony. But VAR would do the Timbers no favors. There is contact from Antony, and the only way that VAR is going to overturn the call on the field is if there’s a “clear and obvious error.” None of the play falls into that category, so the error lies with Gonzales Jr’s initial ruling. It’s a ballsy call to make and it’s definitely incorrect. But it falls into the perfect pocket of “dubious call, not enough to overturn.”
That should’ve been a penalty, and the Timbers likely would’ve been up 1-0 before the 15-minute mark. The blown call allowed RSL to gain confidence. Not the confidence to attack, but the confidence to increase their physicality. The Monarchs always do this. They’re a dirty team of brutes who always try to gain a leg up through various bits of “gamesmanship.” Those little tricks began to add up before a boiling point was reached in the 22nd minute. An outlet ball to Felipe Mora invited Brayan Vera (the Toye-crippler) to charge directly through the Chilean’s back to nullify a counterattack. This should be a yellow card, but former Timber Noel Caliskan received the booking instead for kicking the ball away.
Caliskan’s burning hatred for the Timbers wasn’t quelled by the yellow card. One minute later, he decided to target his former captain. A late sliding challenge caught Diego Chara’s trailing leg with studs exposed. This did not result in an immediate second yellow. It became a Portland free-kick from the right wing.
That 24th-minute free kick was sent into the box by Kristoffer Velde. Mora met it with a header, but Rafael Cabral made a spectacular save at his near post to deny the Chilean.
There’s the story of the year for Mora. He’s gotten plenty of good looks at goal but is denied either by a great save or a poor finish. As his 24-game goal drought progressed, the spectacular saves began to diminish in favor of the poor finish. However, the regular season was over. Playoff Pipe had arrived.
Mora followed the rebound and unleashed a killer strike to beat Cabral at the far post, ending his goal drought and giving the Timbers a crucial 1-0 lead. This is what was missing during the regular season. Portland doesn’t get a lot of rebounds. Usually the loose ball falls to an opposing defender who launches a clearance far beyond the box. But Mora charged down the spillage himself, and cleaned it up in a way that only he can.
Portland and RSL both tried to search for the second goal, but the Timbers’ attacks were more threatening. In the 35th minute, the second goal of the game arrived.
Velde received the ball on the left wing and cut inside on DeAndre Yedlin. From the channel, he fired an inswinging cross towards the six yard box. Mora ghosted in behind Vera (who completely whiffed at the header) to direct the ball towards RSL’s goal. Cabral was standing at the spot that Mora’s header was aimed at and made another point-blank save. But Mora followed the rebound again and smashed the ball into the back of the net from point-blank range.
For the first time since July 30th, the Timbers had a lead of multiple goals. That was during Leagues Cup, and you’d have to turn the calendar back to April 27th to find their most recent multi-goal lead against a MLS opponent. Their last multi-goal lead at home was March 30th. The Timbers had reached a territory that they hadn’t seen in months. And that precious multi-goal lead lasted a total of four minutes.
A short corner kick was launched into the box by Diogo Goncalves and headed home by Justen Glad. This play doesn’t worry me that much. Portland’s marking is confusing, yes, but the actual header by Glad was perfect. It ended up being RSL’s only shot on target of the first half. Portland was in control for the first half, and had a crucial lead as well. Prior to kickoff, Adam Susman (you know who he is) supplied a very encouraging stat: RSL has lost their last 15 games when they’ve been trailing at halftime.
The Troublesome Stretch
From minutes 46-67, the Timbers were put under heavy pressure by RSL. More turnovers in their own half allowed the Monarchs to keep their foot on the gas. During this period, RSL outshot the Timbers 8-1. It was the most dominant portion of the game for the Monarchs, but several James Pantemis saves and blown shots kept the 2-1 scoreline. An obvious offside call wiped a potential Zavier Gozo equalizer off the board in the 54th minute. But the way that the Timbers were able to regain control was mesmerizing.
I’m choosing that word because the spell of play that broke RSL’s stranglehold wasn’t amazing, but it was highly intriguing. Jimer Fory exited the game in the 64th minute after a clash of heads, but Gonzales Jr waited FOUR ENTIRE MINUTES to allow him to return to the field of play. During that time, the Timbers were playing with 10 men. Somehow, while down a man, they managed their best spell of possession during the entire game.
No chances were created, but none needed to be. They simply kept the ball and cycled it around RSL’s block. Their complete lack of risk-taking completely worked in their favor. After this spell passed and Fory returned to the pitch, Portland’s composure was back.
Recap, Continued
The defining moment of the second half occurred in the 76th minute. A David Ayala handball (unintentional, but still an infraction) set up a 25-yard free kick opportunity for RSL. I like it when center backs line up over a dead ball, and Vera has an absolute rocket of a left foot. No cross was coming; Vera was always going to shoot this ball. That’s exactly what he did; putting a beautiful curling effort around the wall and past Pantemis at the near post. It seemed like RSL’s equalizer had finally come, but Gonzales Jr blew his whistle right after the ball hit the back of the net.
Rwan Cruz entered as a substitute in the 64th minute for Victor Olatunji. The hulking Nigerian striker was a thorn in the side of Portland’s center backs during his time on the pitch, so a substitution for Cruz was odd. It became a disaster-stroke when Cruz decided to audition for a NFL defensive line job on Vera’s free kick. No one told him to charge directly into Portland’s wall, and he didn’t even need to do it given the trajectory of Vera’s shot. This senseless foul wiped the equalizer off the board. It was very funny.
This gave the Timbers an opportunity to regain their multi-goal lead. Diego Chara set up their best chance to do so in the 81st minute. He made a tackle, then an interception, and found Mora, who played a through ball to a streaking Velde. Cabral was able to cover his near post and deny the Norwegian of his first Timbers goal. However, this save forced a corner kick.
Velde’s resulting corner kick was cleared, but the ball was recycled to Ariel Lassiter. Another peach of a cross floated towards the back post where Kamal Miller was waiting to nod the ball past Cabral to give the Timbers a 3-1 lead in the 82nd minute.
With that goal, and RSL’s most threatening attackers off the pitch, the game was sealed. The Timbers had one goal tonight: win the game. They accomplished that by scoring three goals and extending their season.
A Few Good Charts
It’s amazing the difference that a win makes. Now I can show some charts and be happy about them! (All charts courtesy of @mlsstat.bsky.social.)

Both of these teams desperately wanted to score a goal. 25 of the 34 shots were on target (this does not take blocked shots into account). 23 of those 34 shots were taken inside the box. Portland only registered one shot from outside the box, and it was a quality attempt from Da Costa in the 58th minute. But I’d like to draw your attention to the bar graph at the bottom.
Despite RSL’s heavy pressure, they failed to register one “good” chance. Portland put the clamps on their own six-yard box. Meanwhile, the Timbers had 2 “good” chances and 2 “great” ones. Mora was responsible for three of those, while Miller’s goal represented the fourth. All of them came from within the six-yard box.
Portland was able to penetrate RSL’s box and take a boatload of shots. RSL took more, yes, but a lot of those attempts were born out of desperation. The Timbers were able to execute their attacking game-plan, and the passing map provides a helpful illustration.

The left side of the pitch explains everything. Da Costa is the pocket player, and he has three players in his immediate vicinity. This left-sided overload works in Velde’s favor, who can act as the field-stretcher. Fory provides support on the left, and Mora brings RSL’s backline further forward to create space in behind. There’s one issue though. What happens to the right side?
Juan Mosquera held the width, but Antony was allergic to making any kind of run in behind. Technically, the Brazilian was operating as the second pocket player. But even the pocket player has to make runs. Da Costa operated as the primary connector. He finished this game without a single created chance, but he did put in several threatening balls that didn’t lead to a shot. That’s unfortunate. But Da Costa’s ability to drive forward and connect play was apparent. Velde was a threat every time he touched the ball. Mora found the spots in the box to score. The plan worked. However, there were still some issues.
The difference in interceptions is stark. RSL had more interceptions in Portland’s half than the Timbers had in total. During that worrisome spell at the beginning of the second half, Portland was trying to break RSL’s press by playing out from the back.

The Portland Timbers aren’t good enough to consistently manipulate a high press. Although they had a one-goal lead, it was much more beneficial to try riskier long passes to bypass the press entirely. Those passes actually carried less risk than trying to play out from the back. I think this is the most teachable lesson from this entire game. It’s also a good lesson to learn for the playoffs and next season; regardless of how long their playoff voyage lasts.
Player Ratings
We’re using G+ ratings again and going in order from highest to lowest. The actual ratings are based on my own assessment, but I wanted to list the players in reference to how the Underlying Numbers perceived their performance and compare it to my own thoughts. It’s an interesting thought exercise, especially after my previous statements about how the Timbers have been building a “monument to fraudulence” all year. A true fraud drives the Underlying Numbers crazy.
James Pantemis: 9
He needed a bounce-back after a very poor showing against San Diego. He made several key saves in the second half, particularly at his near post. The Canadian goalkeeper was credited with 6 saves, and his composure on the ball was massively improved from Decision Day. He's Portland's starting goalkeeper for the rest of the season.
Diego Chara: 10
Diego Chara hasn’t played a full 90 since July 30th. That was the last time that the Timbers won a game by multiple goals. Throughout the entirety of 2025, the club captain has only completed EIGHT full matches. Portland’s record in those games is 4-2-2. The draws were the home LAFC game and the Asterisk; two matches that featured controversial referee decisions at the tail end of the game. The losses included the season opening 4-1 defeat to Vancouver and Portland’s 1-0 loss to RSL back in July. If Phil Neville’s goal was to save Chara’s legs for this game, he succeeded.
No Timbers midfielder is as impactful between the boxes as a 39-year-old Diego Chara. That could be an indictment of the squad or another reminder that a 39-year-old Diego Chara is still on another level. I think both statements are true. Chara’s soccer IQ allows him to know exactly where the ball is supposed to go. He’s crucial to Portland’s ability to break a press. During the first half, he found himself on the right wing for some reason. It didn't matter. He was able to glide past the defender and keep the ball moving. The captain is one of the only players who is fluid in every action. Portland needed that fluidity tonight, and Chara’s return provided the platform for this playoff win. “Diego Chara is a great player and an even better person,” Felipe Mora said post-game. Build the statue.
Kristoffer Velde: 9.1
Stat of the day: Velde took one shot. That lone attempt was the breakaway that Cabral stuffed in the 81st minute. It was a golden chance and it was snuffed by a very good goalkeeper. That hurts, but the Norwegian’s performance buoyed the entire team.
Velde finished the game with 6 chances created. None of those resulted in assists because Velde is allergic to affecting the stat sheet. I like that bit. But a perfectly struck free-kick to Mora and the other pinpoint cross to Mora deserved assists. The Norwegian, therefore, gets two assists in my book.
His chemistry with Da Costa is still a work in progress, but I think that’s a factor of inconsistent lineup selection. Both players had a few miscommunications during tonight’s game. The overall product of their tandem was largely positive.
David Ayala: 7.5
While Chara acted as the platformer, Ayala acted as the sidekick. He was able to take a backseat to the captain but still provided an excellent balance in Portland’s midfield. Unfortunately, he was ultimately responsible for Glad’s goal. I think the majority of the blame lies with the organization of Portland’s set piece defense. Putting a defensive midfielder on a center back isn’t a good idea, no matter how good the defensive midfielder is at winning headers.
Kamal Miller: 10
Kamal Miller is a playoff riser. He was benched in last year’s Wild Card Game for Miguel Araujo. We know how that turned out. The Canadian tends to save his best performances for when the stakes are highest. Part of being a playoff riser is locking in during the second half. Before his clinching goal found the back of the net, he was Portland’s best defender.
Blocks, tackles, clearances, excellent positioning, you name it. The goal took this rating from a 9.8 to a 10. Miller is tied for the most goals on the team since the beginning of September. Don’t let him get hot.
Juan Mosquera: 9.9
Mosquera’s importance to the Timbers has been apparent during this recent poor stretch of form. Let’s give him the Stathead treatment. Today’s criteria: 14 ball recoveries, 3 tackles won, 7 progressive passes, 5 progressive carries, and 72 touches.

This is an interesting collection of players. Mosquera is the only fullback to reach these heights in 90 minutes. Nouhou doesn’t count because he did it in 120 minutes. This is a herculean statline that takes Mosquera’s attacking and defensive contributions into full account. He’s only missing a created chance to get that 10. However, these ratings don’t mean anything. They’re just numbers after all.
Jimer Fory: 9.3
I’d like to begin this section by acknowledging Fory’s chant, sung to the tune of “Zombie” by The Cranberries.
“He’s in your heaaaaad, in your heaaaaaaad, Fory, Fory, Fory, ee ee ee.”
Banger. No further notes. Sing this at every home game. This chant was pioneered by West Bromwich Albion fans, who dedicated the song to Jayson Molumby. I fully appreciate and highly encourage this crossover. After all, Timbers and Baggies crossovers have resulted in Liam Ridgewell and Sebastian Blanco coming to the Rose City.
Fory returned to the starting lineup for the first time since September 13th. That was Portland’s last win before tonight. The Colombian’s two-way performance might have been better than his friend’s on the opposite flank. He didn’t put up the raw numbers that Mosquera did, but his output was very impressive. 1/1 accurate crosses, 3/3 accurate long balls, 6 clearances (4 aerial), and a 100% duel win rate. He’s a quality starter in MLS, and the Timbers are a lot better when he’s in the team.
David Da Costa: 8
Da Costa did not create a single chance in this game. He was unlucky not to. But he was the link between the midfield and the attack. That’s what he was brought here to do.
He looked really sharp despite a couple miscommunications. The next step for him to get back to his early-season self is making this level of performance his floor. It’s been a while since he was floating around the pitch like he did tonight. With his lone shot, he forced Cabral to make an excellent save. I hope he’s been able to get some of his confidence back even though he didn’t get on the scoresheet.
Finn Surman: 8
Like Miller, Surman did the majority of his damage in the uncertain period at the start of the second half. I would still like to see him attempt more long balls, and his presence in the base of Portland’s defense is immense. He didn’t stand out like he usually does, but that’s a sign of a good performance as a defender.
Felipe Mora: 10
I’ve been very mean to Felipe Mora recently. He’s been getting a lot of chances, and those finishes haven’t found the back of the net. But that was during the regular season. Playoff Pipe is an entirely different animal.
Credit it to the birth of his child. Credit it to his experience. But Felipe Mora was a man on a mission tonight. Both of his goals were scored because of pure will. The initial attempts were stonewalled, but he didn’t give up. That’s the Felipe Mora that the Timbers have needed all year. When his second goal hit the back of the net, the hat-trick thought crossed everyone’s mind. Of course he didn’t get it, but he didn’t need it in order for tonight’s performance to be a smashing success. “I’m glad to be back in the playoffs,” he said post-game. “Anything can happen in these moments.” Mora understands the ethos of this club. If you get to the playoffs, you can create magic. But his goals tonight weren’t born out of magic. They were created by sheer will. Bravo, Pipe.
Omir Fernandez: 7
His most notable action of the game was getting in an aerial duel with Katranis in the 4th minute of stoppage time. It resulted in a clash of heads, but the American winger walked away from the contact and waved off the trainers. DAWG.
Ariel Lassiter: 8
The only Lassiter moment in my notes is his assist to Miller. That’s good enough for an 8. I think he needs to start Game 1 in San Diego. More on that in the next match preview. Hell yeah, more Timbers soccer in 2025.
Cristhian Paredes: 6.6
I thought that Paredes was suspended for this game after reaching his yellow card limit on Decision Day. However, it appears that he only received a fine instead of a fine and suspension. Tough luck. Because he was available, he became Portland’s second substitution of the night when he replaced Ayala in the 78th minute. I do not have a single contribution of his in my notes (positive or negative). But he did help close out the game!
Joao Ortiz: 7.5
The Ecuadorian was on the field for less time than Paredes but made a couple nifty ball recoveries and clearances. It was a very encouraging cameo.
Kevin Kelsy: 6.8
He won a defensive header on a corner kick and committed a Kelsy foul by simply being two big. Olatunji, meanwhile, is the same height as Kelsy and was much more physical. He did not get whistled for anything similar to the foul that Kelsy had called on him. Of course.
Antony: 6.1
It was another rough outing for the Brazilian winger. Neville put him in the right-sided pocket, and he’s a transition winger rather than a possession winger. Especially if he isn’t willing to make dynamic off-ball runs to create space and force defenders to make tough decisions. It’s one thing if he’s running at them on the counter and they’re already on the back foot, but asking him to help break down a block just from carrying and passing is a pretty tall order. He scored his most recent goal (the game-winner against New York) by making one of those dangerous runs. His speed is still his best trait, and it’s being underutilized by asking him to be a pocket player in possession.
Coach Rating: 7.5
Neville’s use of substitutes was impressive, but I think some of those changes could have been made earlier. That’s a pretty minor nit-pick. I liked the starting lineup, but I do have concerns with the team’s game model. Particularly about how they adjust to having the lead.
It’s still hard for the Timbers to play with the lead, and they need to up their directness when opposing teams begin pushing into their half. That 10-man possession sequence was nice, but they still aren’t creating serious danger with the ball. Those “good” and “great” chances I mentioned earlier were created from set pieces and counters. Except Mora’s second goal, which was a perfect execution of the game-plan: pocket player finds supporting winger and supporting winger delivers a good cross into the box. I don’t think that play is very sustainable (at least the delivery) but it is encouraging to see a repeatable pattern from the training ground executed on the pitch. If they’re intent on keeping that possession model, quick reactions become that much more important if they fail to connect with the delivery.
Neville kept faith in this group of players, and it paid off with his first playoff win as a MLS head coach. According to him, yesterday’s game wasn’t a playoff game, but it counts in the record books as one. Rebounding from last year’s disaster with a performance powered by emotion and friendship is an excellent turn of events. Especially when the team’s recent form is taken into account.
Bracket Time

Revenge is on the docket. Now that they’ve qualified for the “proper” playoffs, they have a chance to avenge Decision Day. Time for the first taste of the Best-of-Three round. Don’t worry, it’s San Diego’s first playoff voyage as well. Anything can happen from this point onward. And the Timbers are playing with house money.
Final Whistle
Phil Neville avoided the bee sting, and the Timbers ended the season of the team from the Beehive State. I told you this would happen.
However, I would be lying if I didn’t believe in my own prediction. I ridiculed my podcast co-host (Juanners from Box State Footy, check out the most recent episode) for picking the Timbers in this game. He is from Colorado, so he had personal stakes to gain from a RSL loss. So did I. Both of us are very happy right now. Congratulations to us and the rest of the Box State Footy team, who filled the Discord with multiple messages of “F*** Salt Lake.” Always happy to make the suffering fans in Colorado get some enjoyment out of the playoffs.
While the Rose Garden was packed for the Blazers’ season opener and the return of Damian Lillard, Providence Park featured a fair amount of empty seats. But the noise was always present, and the various explosions heard from Morrison Street were music to my ears.
I do not want the Timbers to lose games of soccer, but I left my apartment expecting to go to Portland’s final game of the season. However, on my drive over, I talked myself into a victory.

This exact drive has been repeated multitudes of times over the past few years. Tonight, when I was feeling less confident than ever, the clouds parted for a glorious ray of sunlight. My dad is reading this. He’s furious that I took out my phone while I was driving. Dad, some moments need to be captured on film. I even included a guardrail for your amusement.
Portland has been at the center of the national news cycle for weeks. During this drive, helicopters were circling above the Immigrations and Customs Enforcement (better known as ICE, or “the Gestapo” as I like to call them) facility in the South Waterfront. The current administration wants the entire country to believe that this city is a warzone. They want everyone to believe that it’s been burnt to the ground. But that’s the easy explanation. Their actual motivations are far darker than that.
The current administration is fully intent on using the military against American cities. Their attempts at persuasion don’t matter in the slightest. They will achieve their end goal by any means necessary. And apathy is the emotion they’re counting on.
I’ve given into apathy over the past month. As I’ve seen how fragile Portland’s canoe has been, it became harder and harder to see a playoff run. Giving into that thought process is letting fascism win. The current administration is relying on their opposition to burn out. As the White House gets demolished, blood-hungry Gestapo “soldiers” roam the streets. They want the American people to get crushed under the weight of indifference. There is always belief that the world can get better and those responsible for these egregious breaches of governance will get their day in court and the prison sentences that they deserve. Accepting that said outcome is impossible is how they win. Without hope, nothing can be changed.
Those players who took the field tonight didn’t have hope. Hope is unique to the spectator, who cannot control the events on the field. The players can only have belief. They are the ones who are in control of the events. They have to believe that they can do something, and use that belief to execute properly. The Timbers had that belief yesterday. So did their head coach. If only the opposition party in Congress shared their same belief. They have the ability to execute just like the Timbers did tonight. They’ve been believing and executing during this current government shutdown. I have to give them credit for that. But they cannot let their foot off the gas. Neither can the Portland Timbers.
During the early years of the American experiment, President Thomas Jefferson sent Meriwether Lewis and William Clark on an expedition to find the Pacific Ocean. During this voyage, the area that would become Oregon entered the public consciousness for the first time. The population of America was confined to the East Coast. Various crimes against humanity and international border disputes would occur before Oregon became a state in 1859. But it wouldn’t have been possible if Lewis and Clark didn’t complete their journey.
Their quest began on the Missouri River in a series of canoes. It was the primary way to travel on the river back in the early 1800s. Steam power hadn’t been invented yet, so the paddles had to keep churning against the current until the river became unnavigable. When they had to travel over land, they kept their canoes and used horses to ferry their gear over the mountains.
The Portland Timbers are still carrying their canoe, just like Lewis and Clark. Instead of the horse, they’ve decided to hop on the bull. It’s more temperamental than a horse, but it’s a stronger animal. Bull-riding is a dangerous sport that I do not like. Most instances of bull-riding last seconds. It’s all about how long you can hang on to a distressed animal that desperately wants you to get off of its back.
This is how the Timbers approach every playoff run. They hold onto the bull until they inevitably get thrown off. There’s only one time that they’ve been able to ride the bull all the way. They’re ready for the challenges ahead. With their canoe secured and some minor work being done on repairs to their trusty vessel, they’ve hopped on the bull again. The expectations for this bull ride are low. All they have to do is hang on as long as they can. The apathy is gone. The sun has broken through the clouds. The Portland Timbers have won a playoff game. The voyage continues.