Thorns

Tordin Might Be Pretty Good at This.

FULL TIME
Portland Thorns
1 3
SD
San Diego Wave
Tordin 8'
6-1-2 · 19 pts · 15 GF · 9 GA · +6 GD

It's fine. Five days after playing 33 minutes with nine players in Seattle, Portland flew to San Diego and ran out of gas. Pietra Tordin scored again, because that's what Tordin does now. Two starts, two goals to open 2026. It wasn't enough, and blaming Tordin is not on the table. The legs that won the war on Friday lost the battle on Wednesday. Context matters.

Key Events
2' ⚽ , Dudinha (San Diego) right foot from the center of the box. Assisted by Gia Corley. First goal conceded all season.
8' Pietra Tordin , Left foot from the center of the box. Equalizer. Tordin's second goal of the 2026 season.
27' ⚽ , Lia Godfrey (San Diego) left foot from the center of the box. Assisted by Dudinha. 2-1 San Diego.
45' 🔄 Deyna Castellanos on for Shae Harvey
45' 🔄 Sophia Wilson on for Mimi Alidou
57' 🔄 Mallie McKenzie on for Marie Muller
61' 🟨 Olivia Moultrie , Foul
68' 🔄 Maddie Padelski on for Reilyn Turner
78' 🔄 Jayden Perry on for M.A. Vignola
82' ⚽ , Melanie Barcenas (San Diego) right foot from the left side of the six yard box. 3-1 final.

Let’s get this out of the way: it’s fine.

Portland lost 3-1 in San Diego. First loss of the season. First goal conceded. The scoreline looks bad. The context makes it make sense. Five days ago these same players played 33 minutes with nine people on the pitch and still beat Seattle 2-0 at Providence Park. Then they flew to Southern California for a Wednesday night game against a rested Wave team that had a full week to prepare. Legs don’t lie. This was always going to be the hard one.

Dudinha scored in the second minute. 120 seconds. That’s how long Portland’s shutout streak lasted. Two clean sheets across two matches, a zero in the “goals against” column that felt like it could last forever. It couldn’t. Gia Corley slipped the ball through and the Brazilian buried it bottom right. First goal conceded in 2026. Snapdragon got loud.

And then Pietra Tordin happened.

Six minutes later. Left foot. Center of the box. 1-1. Two goals in three matches to open 2026. Both as a starter. Tordin doesn’t get the memo about pacing yourself in your second NWSL season. She just keeps walking onto pitches and scoring. The Princeton kid heard 8,000 people screaming for the home team and equalized like it was an inconvenience to her schedule. She didn’t flinch. She didn’t rush. She picked her spot and hit it.

We need to talk about what Tordin is. Not “could be.” Is. She’s the most dangerous forward on this roster right now, full stop, and the goalkeepers in this league are the ones who have to figure it out. Two-time Rookie of the Month in 2025. Two goals in three matches to open 2026. The Princeton kid plays like she’s been here for a decade, which is funny because she signed her first pro contract just over a year ago. Whatever Vilahamn saw in preseason, the rest of us are catching up.

The problem is Tordin can’t play all 22 positions. Lia Godfrey restored San Diego’s lead in the 27th minute. Left foot, center of the box, Dudinha with the assist. The Brazilian ran this game. Portland’s legs, five days removed from the Seattle chaos, simply weren’t there to track her. 2-1 at the break. You could see the fatigue. The players who ran themselves into the ground on Friday night were running on fumes by the 30th minute on Wednesday.

Vilahamn saw it. Deyna Castellanos made her 2026 debut at halftime, replacing Shae Harvey. Sophia Wilson came on for Mimi Alidou. Two subs at the break. Two statements: that wasn’t good enough. Castellanos, the Venezuelan international who can unlock a defense with one pass, brought creativity the first half was missing. Portland pushed. More urgency. More territory. But 35% possession across 90 minutes tells the real story. San Diego had the ball. San Diego had the legs. San Diego had the game.

Olivia Moultrie picked up a yellow in the 61st minute. Frustration. McKenzie came on. Then Padelski. Then Perry. Five subs. Nothing changed. In the 82nd minute, Melanie Barcenas pounced on a rebound after Morgan Messner made the initial save. 3-1. Game over. First loss. Deep breath.

The numbers are ugly and we’re not going to sugarcoat them. Four shots on target. San Diego had eleven. 35% possession. Portland won corners 6-3 but did nothing with them. Jessie Fleming played all 90 and tried to impose herself in midfield, but this wasn’t Friday night at home against ten. Kenza Dali owned the center of the park. Dudinha was unplayable. This is what the NWSL looks like when you show up to an away game running on empty against a team that had a full week to prepare. It happens. It happened.

Here’s why this is fine. Portland had the worst possible scheduling draw to start the season: away at Washington, home to Seattle (where they got two red cards and played with nine), then away at San Diego five days later. Three games in twelve days, two of them on the road, one of them a war. Any team in the league drops that third game. The fact that Portland even went 2-0-0 into it is the story. The loss is the footnote.

And Tordin. Two goals in three matches. Both starts. She has basically dared the rest of the league to come up with a plan, and so far the rest of the league has not come up with a plan. The season looks different when your 22-year-old is doing this. The ceiling moved.

2-0-1. Six points. Castellanos and Wilson off the bench give Vilahamn real options. KC comes to Providence Park Saturday for Cherry Blossom Day. CBS broadcast. 22,000 fans. Home cooking. The short turnaround that killed Portland in San Diego works the other way now: KC has to come to Portland three days after their own midweek match. Bounce-back game. Let’s go.

By the Numbers

  • Possession: Portland 35%, San Diego Wave 65%
  • Shots: Portland 16, San Diego Wave 18
  • Shots on Target: Portland 4, San Diego Wave 11
  • Corners: Portland 6, San Diego Wave 3
  • Attendance: 8,428
  • Referee: Jaclyn Metz
  • Broadcast: CBSSN

Starting XI

Portland (4-4-2): Morgan Messner, Isabella Obaze, Sam Hiatt, M.A. Vignola, Marie Muller, Shae Harvey, Jessie Fleming, Mimi Alidou, Reilyn Turner, Olivia Moultrie, Pietra Tordin

Bench: Mackenzie Wood, Jayden Perry, Mallie McKenzie, Deyna Castellanos, Sophia Wilson, Maddie Padelski, Carolyn Calzada, Valerin Loboa

What's Next

Players in This Match

Post-Match FAQ

What was the Thorns score today?

San Diego Wave 3, Portland Thorns 1 on March 25 at Snapdragon Stadium. Pietra Tordin scored Portland's only goal in the 8th minute. It was the Thorns' first loss of the 2026 NWSL season.

Who scored for the Thorns tonight?

Pietra Tordin scored in the 8th minute, her second goal of the 2026 season in Portland's third match. San Diego goals came from Dudinha (2'), Lia Godfrey (27'), and Melanie Barcenas (82').

What is the Thorns' record in 2026?

2-0-1 with 6 points after 3 matches. Portland won at Washington (1-0) and beat Seattle at home (2-0) before falling 3-1 at San Diego. The Thorns sit in the top half of the NWSL table.

What was the attendance at the San Diego game?

8,428 at Snapdragon Stadium in San Diego. Portland's home matches at Providence Park have drawn over 22,000.

What was Portland's next match after San Diego?

Three days later at Providence Park: the Thorns beat Kansas City Current 2-0 on Cherry Blossom Day, with Olivia Moultrie's penalty and a Reilyn Turner header. Read the [Kansas City recap](/thorns/matches/2026-03-28-kc-por/).

Did Sophia Wilson play?

Yes. Wilson came on at halftime for Mimi Alidou and played the entire second half. She had her second appearance of the 2026 season.

Did Deyna Castellanos play in this match?

Yes. Castellanos made her first appearance of the 2026 NWSL season, entering at halftime for Shae Harvey. The Venezuelan international added creativity in the second half as Portland chased the game.

How can I watch the Thorns?

This match was on CBSSN. Thorns games air across CBS, ESPN, ION, Prime Video, and NWSL+. Per-match broadcast info lives on the [schedule page](/thorns/schedule/).

How many goals has Pietra Tordin scored in 2026?

Two goals in three matches to open 2026, both as a starter, plus the assist on Olivia Moultrie's match-winner at Washington. The Princeton kid won NWSL Rookie of the Month twice in 2025 and is in her second pro season pretending it's still her first. Don't bet against her.

Why did the Thorns lose to San Diego?

Fatigue from the Seattle match five days earlier was the biggest factor. Portland played 33 minutes with only 9 players against Seattle on March 20 (two red cards), then flew to San Diego for a Wednesday night game. The Wave had a full week to prepare. Portland managed only 35% possession and 4 shots on target.

Where can I see the full 2026 Thorns schedule?

The complete 2026 NWSL schedule with results, recaps, and broadcast info lives at [titletownpdx.com/thorns/schedule](/thorns/schedule/).

More Match Recaps

1-3
L
May 8 · Away · Lynn Family Stadium
Wilson Strikes Early. Louisville Strikes Three.
vs Racing Louisville. Wilson 6'; O'Kane 14', 76', Sears 90+6'
2-0
W
May 3 · Away · Northwestern Medicine Field at Martin Stadium
Three in Seven.
vs Chicago Stars. Moultrie 17', Turner 89'
2-0
W
Apr 29 · Home · Providence Park
First Place.
vs San Diego Wave. Müller 10', Wilson 64'
2-1
W
Apr 26 · Away · BMO Stadium
She's Back.
vs Angel City FC. Tordin 76', Wilson 90+5'
2-2
D
Apr 4 · Away · First Horizon Stadium at WakeMed Soccer Park
Score. Walk Off. Split the Points.
vs North Carolina Courage. Turner 12', Moultrie 33'
2-0
W
Mar 28 · Home · Providence Park
Cherry Blossom Day.
vs Kansas City Current. Moultrie 53' (pen), Turner 63'
2-0
W
Mar 20 · Home · Providence Park
After Dark.
vs Seattle Reign. Tordin 28', Turner 37'
1-0
W
Mar 13 · Away · Audi Field
Moultrie Chose Violence.
vs Washington Spirit. Moultrie 52'
All Match Recaps →