Finding A Floor

A good result or a missed opportunity?

*Cover photo credit to Craig Mitchelldyer/Portland Timbers.*

In their first MLS midweek match of the season, the Portland Timbers traveled to Salt Lake City and played to a 0-0 draw.

Recap

The first half was marred by missed passes and an inability to find rhythm. Claudio Bravo routinely tried to play passes into space, but was impeded by either poor communication or too much mustard on the ball. The Argentine provided the play of the half with a brilliant interception of a cross to Zavier Gozo right before the halftime whistle blew. Here’s what that first half looked like.

Nothing to write home about.

The second half was much more entertaining, with Diego Luna providing a near golazo right out of halftime. But his free-kick hit the crossbar and went out for a goalkick. Both teams tried to go for it, and Portland came the closest in the 89th minute. A wild sequence ended with 3 clear shots from inside the six-yard box and no goals. Jonathan Rodriguez’s effort was saved and the Uruguayan collapsed, but the rebound fell to Omir Fernandez whose shot was blocked by an on-the-ground Rodriguez. Somehow the ball was still loose, and Fernandez regained possession and dribbled to a wider angle but a shot was still available. However, that effort was cleared off the line by Bode Hidalgo. Another major chance fell to Dario Zuparic in the 73rd minute, but the Croatian’s shot whistled just wide of the far post after getting on the end of a perfect dead-ball delivery from Santiago Moreno. Alas, 3 points just wasn’t meant to be.

Defense! *clap clap*

That’s back-to-back clean sheets for the Portland Timbers, and both were fully earned. RSL’s lengthy injury list affected their backline, but all of their top attackers (minus the suspended Willy Agada) were healthy. Portland’s defense was rotated, but their top 2024 backline played a good game. The most important aspect? They won their individual battles. The Timbers outdueled RSL 55-39. That’s a pretty big margin for a road team, especially facing a squad that started one of the better midfields in MLS.

I’m planning to do a larger piece on Portland’s entire pressing structure, but I’ll spoil a bit of it right now: it’s a good start, but it needs to be improved. There was something extremely satisfying about watching Dario Zuparic put out fire after fire tonight. In addition, Joao Ortiz continued his strong form and became a ball recovery machine. Cristhian Paredes wore the captain’s armband and performed admirably. This was a night of individual plays buoyed by a collective defensive mentality. That’s a job well done.

Zero Goals

And, somehow, they weren’t able to capitalize on a depleted RSL backline. I’m very torn about it because they did create some good chances but were unable to finish. However, I have been told that the actual results don’t matter as long as the Underlying Numbers are good. Portland took 8 shots inside RSL’s box, won the xG battle 0.92-0.53, and looked more deserving of a victory when the final whistle blew. Alas, that doesn’t always translate to scoring goals and winning games. But for a midweek match on the road at a difficult venue, I think the Timbers will happily take a clean sheet and a draw, although it does come with a bit of a sour taste.

Player Ratings

Maxime Crepeau: 8.5

Could this be higher? Certainly, but he wasn’t really tested. That doesn’t matter to me. He has back-to-back clean sheets for the first time as a Timber. Per Fotmob, he faced a grand total of 0.1 expected goals on target. But no shot passed by him. Stumptown Footy’s Luukas Ojala gave Crepeau a new nickname: the Great Wall of Montreal. It slaps. Portland already had two starting-quality goalkeepers, now they have two starting-quality goalkeepers with elite nicknames. The rich keep getting richer.

Juan Mosquera: 6.6

The trade-off with Mosquera is allowing him to venture forward to create while leaving space in behind that can be exploited by opposing teams. For the second match in a row, he was anonymous. He failed to complete any of his three attempted crosses, and I thought that he was a candidate to be substituted with Seattle around the corner.

Dario Zuparic: 8.9

Like I said earlier, there’s a certain level of comfort associated with watching Dario Zuparic continually put out fires on the backline. I’d also like to add his tendency to go for headers when the ball is at stomach-level. This was a game that he should’ve started, did start, and performed admirably in. If he finishes that chance, this rating goes up to a 10.

Kamal Miller: 8.7

I will never give Kamal Miller grief for trying to play long balls, but completing only 2 out of 7 isn’t great. But that’s a minor nitpick of a second consecutive outstanding performance from the Canadian. I’ve written about his outstanding timing on sliding challenges, so I asked him about it post-game. Here’s his response:

“Yeah, it’s one of my strengths to come up with a big tackle especially a slide ball down the line, that’s what I like to do. I think it’s just repetition and going against so many players and forwards….it’s a lot of calculation on when to go down and if I have to kick it away or if I can get up with the ball, but it’s one of my strengths and hopefully it keeps leading to clean sheets.”

Claudio Bravo: 8.6

Bravo is a darling of American Soccer Analysis’ goals added metric, which quantifies every on-ball contribution made by a player during a game. Tonight, for example, he posted a 63 (with the average at 50). That was tied with RSL’s Zavier Gozo for the second-highest score on the pitch (Jonathan Rodriguez led all players with a 67). It’s no surprise that the Argentine scores so highly in this metric, but it often fails to account for his greatest weakness: positioning. Tonight, Bravo became the ultimate far post defender.

He won headers on corner kicks, made key touches on the ball to put it out of danger, and made the defensive play of the game with that challenge on Gozo in the first half. In addition to his outstanding defending, he seemed like Portland’s most threatening attacker in the first half. Not due to any created chances, but consistently trying to complete entry balls into dangerous positions. This game showcased the Claudio Bravo of 2021 and 2022. Consistently being able to find that form will be a huge key for this team as the season wears on.

Cristhian Paredes: 7.9

Ditto for Cristhian Paredes, who put in a captain’s performance. After a seemingly rough outing with Joao Ortiz last week at Starfire, both players looked like they’ve been playing together for years. I don’t think that his yellow card was earned given the balance of fouls, but Neville decided to keep him on the pitch for the remainder of the game. That decision spoke volumes to me. David Ayala was available, but Neville saw no reason to substitute the Paraguayan. I would’ve given him an 8, but his lone shot from outside the box in the 52nd minute should’ve at least been somewhat close to the target.

Joao Ortiz: 8.6

I think it’s safe to say that Joao Ortiz has officially arrived. Over the past two games, he’s been a ball-recovering machine that is constantly putting out fires in the midfield and out wide. He covers ground, he helps keep possession, and is seriously in contention to start against Seattle. Why else would Neville have subbed him off at the hour mark?

Antony: 6.1

It’s kind of weird when your archenemy is Noel Caliskan, but that statement certainly applies to Antony. After a half-season of overlap in Portland, the former Timbers draft pick locked down the Brazilian while playing as a right back. It is worth noting that RSL’s top midfielder (Emeka Eneli) began his career as a right back before switching positions. Caliskan had his second consecutive quality start at right back, and it looks like he’s doing the inverse. I find that hilarious.

Meanwhile, Antony hasn’t registered a goal contribution since assisting 3 goals against the Galaxy on April 27th. With Jonathan Rodriguez’s fitness improving, the Brazilian could be back on the bench pretty soon. Competition for starting places is fierce, at least that’s what Neville is always saying.

David Da Costa: 6.3

This was Portuguese Dave’s worst performance as a Timber, but I’m willing to give him a pass based on one extenuating circumstance: it’s his first midweek game. When it became clear that he wasn’t going to make a serious impact, Neville subbed him off. His best chance to change the game came in the 65th minute, when the Timbers had a free-kick at almost the exact spot that Evander scored a worldie last season. Da Costa’s effort went into the side netting. Normally I wouldn’t bring up Evander here, but it’s clear that Da Costa is not as proficient from dead balls as Portland’s former star. That’s OK. But after watching 13 games of Portuguese Dave in a Timbers uniform, I think it’s safe to say that he should be taken off of set pieces.

Santiago Moreno: 7.7

Those set pieces should be taken by Santiago Moreno instead. That delivery to Zuparic was a gem, and he even added another one with a dime to Kamal Miller in second half stoppage time. Portland needs to become better at attacking set pieces, and two of their best chances came from that phase of play. Oddly enough, both headers weren’t counted as shots. I haven’t clipped anything in a while, but there was one moment from today’s game that made me think, “Yeah, I’m clipping that.”

*Two things: I can’t believe that Apple’s broadcast failed during this moment. Also was the horn THAT LOUD during the entire game? Yikes!*

Balance, power, agility, and strength. I wish this outstanding bit of skill resulted in a goal. But it did result in a dangerous free kick! That’s something!

Kevin Kelsy: 6.8

I kind of understand what Cincinnati fans were saying about Kelsy last year. He is a striker with a striker’s body but doesn’t tend to do traditional striker things aside from showcasing his excellent finishing. Chief among them is the primary duty for big line-leaders: occupying opposing center backs. When the Timbers would progress the ball to the edge of the box in the first half, Kelsy opted to drop into the pocket instead of staying high. Usually, you want your striker to drop when the ball is already in the box and it’s time to find space to receive a pass. This type of off-ball movement could be effective when a box-crashing winger is on the field (hello, Jonathan Rodriguez) but neither Moreno or Antony show any tendency to make that kind of run.

Either way, Kelsy ended his hour of playing time without taking a single shot. If he was in the box to be on the receiving end of some crosses, it might have been different.

Diego Chara: 7.2

It was a welcome sight to see the captain back on the pitch. During his half-hour on the field, Chara completed a tackle and made 3 recoveries. It was his turn to be the closer, and he checked all the boxes.

Jonathan Rodriguez: 7

Can you blame Rodriguez for failing to score during the triple chance event? After a few rewatches, I’m going to give more credit to Rafael Cabral for effectively closing down the space. Neville said that Rodriguez’s substitution changed the game. Well, technically yes, but not to the extent that his introduction in last year’s match at Rio Tinto did. Either way, he’s gaining more match sharpness, and Neville did hint at the possibility of his first start coming on Saturday against the Sounders.

Omir Fernandez: 7.4

I become more and more impressed with Fernandez every time he steps on the pitch. Seriously, he’s becoming a critical player for this team. Being able to bring on a player like Fernandez when the team is chasing a goal or even trying to protect a lead is a luxury. And he came so close to giving the Timbers the lead, but Bode Hidalgo denied him on the goal line. He completed all 11 of his attempted passes tonight.

Felipe Mora: 6.7

The Chilean is at his best when he’s surrounded by other quality attackers, and he tried his hardest to give his team the win. I’m looking forward to Mora and Rodriguez continuing to link up around and in the box. Like Fernandez, Mora completed all of his attempted passes (5/5).

Ariel Lassiter: 6.8

This was a rather encouraging cameo from Lassiter, who has often looked off the pace in a Timbers uniform. I liked the energy he brought on the wing, even though he didn’t do anything meaningful with the ball at his feet.

Coach Rating: 7.5

Neville made the right choices with rotation, and it nearly paid off with a big win away from home. Next weekend’s game is massive, so leaving players like David Ayala and Finn Surman on the bench was a calculated risk that didn’t leave the Timbers in a worse spot. I would’ve liked to see Eric Miller come on at some point for Mosquera. I don’t think the Lassiter change was absolutely necessary, but it was an aggressive move that signified that Neville wanted to go for the win at all costs. And I can’t blame him for it.

After the game, Neville noted that he was “disappointed” with the team’s attacking movements in the first half. On the other hand, he was “super proud” of the clean sheet and the team’s defensive attitude and commitment. But I’m drawn to the answer from Luukas Ojala’s question about the team’s identity:

“I think what you’re seeing, game in and game out, and we see it in training every single day, you’re seeing a clear identity forming. A team that’s together, a team that tries to play really good football, a team where the players are playing tactically so well. They’re playing really together, defending in numbers, we’re defending our goals, we’re taking pride in clean sheets and we’ve got an incredible spirit. So I think a clear identity is forming.”

Table Time

Calling tonight’s game a “missed opportunity” is reasonable, but the Timbers are still in 4th place entering Thursday. Despite missing several key pieces, Pablo Mastroeni’s RSL is a tough opponent because of their organization. The hosts xDAWG’d themselves a home draw by throwing their bodies on the line to protect their own goal. Meanwhile, San Diego beat a sputtering Rapids team to climb into second place. Minnesota lost in Houston, and a Timbers win could have propelled them above San Diego and the Loons, respectively. However, the biggest result of the night occurred directly below them. LAFC spanked the Sounders 4-0, ending a 5-match unbeaten run for Seattle. I’ll dive deeper into that on Friday, but the gap between 4th and 6th is now 3 points. But the gap between 4th and 7th is 5 points.

No Shield discussion today, I’ll take a look at that table after Saturday’s game.

Final Whistle

Neville continued his answer about the team’s identity by noting that the Timbers have only lost one game in their last 11 competitive matches. We’re still witnessing a Portland squad not only survive the early months, but thrive (to an extent). Last year, the Timbers came to Salt Lake City on the heels of a 3-match week and fought back twice to secure a valuable point. Eight months later, it seems like a 0-0 draw is a disappointment. But it isn’t if you look at the bigger picture.

When the camera lens is expanded, the Portland Timbers are succeeding in 2025 because of the entire team. It isn’t just the top of the roster’s overperformance that is driving this team forward. In this fixture last year, the Timbers scored 3 goals from 0.5 xG. They needed all of them because the defense conceded 3 of their own. The 2025 Timbers have raised their own floor. Who knows where the ceiling can rise to. As they prepare for a game against their biggest rivals, the ceiling is begging to be lifted. The climb continues.