Thorns

Tordin Might Be Pretty Good at This.

FULL TIME
Portland Thorns
1 3
SD
San Diego Wave
Tordin 8'
3-1-1 · 10 pts · 8 GF · 5 GA · +3 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. Three goals in three games. It wasn't enough. 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. Third goal in three matches.
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. Three goals in three games. Every single match she’s played as a professional, she has scored. Not “looked dangerous.” Not “showed flashes.” Scored. The 22-year-old from Princeton heard 8,000 people screaming for the home team and just went and equalized like it was nothing. 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. She might be the early frontrunner for NWSL Rookie of the Year. Three games, three goals, zero hesitation. The Princeton kid plays like she’s been here for a decade. 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. Three goals in three games. She scores every time she walks onto a pitch. The season looks different when your 22-year-old striker has that kind of start. The ceiling for this team just 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 third goal in three matches to start the season. 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.

When is the next Thorns game?

Saturday, March 28 at 1:00 PM PT vs Kansas City Current at Providence Park. Cherry Blossom Day. Broadcast on CBS.

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 also air on CBS, ESPN, ION, Prime Video, and NWSL+. The next match vs Kansas City on March 28 is on CBS.

How many goals has Pietra Tordin scored in 2026?

Three goals in three NWSL matches to start the 2026 season. Tordin has scored in every professional match she has played. The 22-year-old Princeton product is the early frontrunner for NWSL Rookie of the Year.

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.

What is the Thorns schedule this week?

Portland hosts Kansas City Current at Providence Park on Saturday, March 28 at 1:00 PM PT. Cherry Blossom Day. Broadcast on CBS. After that, the Thorns are away at North Carolina Courage on April 4.

More Match Recaps

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 →