
Sometimes the math just doesn’t add up.
Despite dominating the stat sheet and long stretches of the game, Racing Louisville FC came up short Friday night, falling to the Portland Thorns 2-1 at Lynn Family Stadium.
Racing (7-7-5, 26 points) had more offensive output across the board against Portland (8-6-5, 29 points), except for the scoreboard. Louisville had more shots, corner kicks, touches in the opponent’s box and final third entries, but a 90th minute own goal by Racing’s Ellie Jean gave the visitors the victory.
“This was football at its absolute finest and why it can be one of the most cruel things — the most cruel sport, sport can be cruel — is that you don’t always walk away with maybe what you felt you should have walked away with on the night,” Racing head coach Bev Yanez said.
“We do feel we were the better team tonight,” she added.
From the opening whistle, Racing put it to Portland. Louisville hemmed the Thorns in their own half, repeatedly won possession high up the field and pounded Portland’s penalty area with shots and service.
When Katie O’Kane opened the scoring in the 22nd minute with her first career goal, Louisville had outshot Portland 8-1.
“I just saw an opening, so I ran to it,” O’Kane said of her goal. “The ball came to my foot and the goal was right there, so I just passed it in.”
But then, Racing pulled its foot off the accelerator.
The run of play drew even, with Louisville taking a 17 to 16 shooting advantage thereafter. Both teams were denied clear scoring opportunities by superb goalkeeping.
Portland’s Mackenzie Arnold stoned Louisville’s Emma Sears from point-blank range in the opening minutes of the second half.
Then, Louisville goalkeeper Jordyn Bloomer remarkably saved yet another penalty kick — her third of the campaign, just one shy of the NWSL single-season record — denying Portland’s Sam Coffey in the 49th minute.
By the time Sears banged another shot off the inside of the Portland goal post in the 76th minute, momentum seemed securely on Louisville’s side.
Until the 90th minute.
That’s when the ball ricocheted off a helpless Jean, giving Portland a first win in Louisville in three years.
“They went into a closing strategy and ended up getting a goal,” Yanez said of Portland. “You know, this is a part of the game.”
Over the course of the night, Racing racked up 25 shots, with six on target.
“We were really threatening, we just have to put the ball in the back of the net. I think we created a bunch of chances, we lived in their half,” defender Courtney Petersen said. “It’s just about finishing our chances … We created a lot, we just have to put them away.”
To their credit, the Thorns were more efficient, with eight of their 17 shots testing Jordyn Bloomer. The former Wisconsin Badger finished with seven saves.
The game was a rematch of one of the season’s most hotly contested affairs, a 3-3 draw in Portland in April. That afternoon, referee Corbyn May called a league-record 41 fouls.
Friday’s contest was more tame, but only slightly. Geraldo Flores blew his whistle 29 times and brandished five yellow cards, including one to Louisville goalkeeper coach Sergio Gonzalez on the bench.
“We dominated different portions of the game, so there’s a lot to learn and grow from,” O’Kane said. “But (I) wish we could’ve gotten a result.”
Racing remains in a playoff position and will remain there for at least another week. The two clubs that could overtake Racing and push them below eighth place, Angel City and Gotham, play one another Sunday. The lowest position from which Racing could emerge after this weekend is eighth.
Racing now turns its attention to the Seattle Reign, with a trip to Lumen Field on the horizon on September 14. That will be followed by a second West Coast game at the Utah Royals on Sept. 19.
The next time Racing takes the field at Lynn Family Stadium will be Sept. 27 against Angel City on Pups at the Pitch night. For tickets and more information, visit RacingLouFC.com/pups.
Game Summary: Racing Louisville FC vs. Portland Thorns
Date: September 5, 2025
Venue: Lynn Family Stadium
Kickoff: 8 p.m.
Weather: 74 degrees, breezy
Attendance: 6,102
Scoring
Racing Louisville FC (1, 0, 1)
Portland Thorns (1, 1, 2)
Goals:
Racing Louisville FC:
22′ Katie O’Kane
Portland Thorns:
31′ Julie Dufour
90′ Ellie Jean (own goal)
Lineups
Racing Louisville FC: 24 – Jordyn Bloomer; 11 – Courtney Petersen, 3 – Arin Wright (c), 5 – Ellie Jean, 16 – Janine Sonis, 8 – Ary Borges, 20 – Katie O’Kane (70′ 14 – Marisa DiGrande), 7 – Savannah DeMelo, 6 – Ella Hase (78′ 4 – Makenna Morris), 13 – Emma Sears, 42 – Sarah Weber (90’+1 88 – Bethany Balcer)
Subs not used: 33 – Cristina Roque, 77 – Madison White; 15 – Ángela Barón, 31 – Katie Scott, 32 – Avery Kalitta
Head Coach: Bev Yanez
Portland Thorns: 18 – Mackenzie Arnold; 5 – Isa Obaze, 24 – Jayden Perry, 2 – Reyna Reyes, 20 – Kaitlyn Torpey (64′ 29 – Mallie Mckenzie), 17 – Sam Coffey (c), 21 – Jessie Fleming, 13 – Olivia Moultrie, 27 – Julie Dufour (64′ 26 – Mimi Alidou), 19 – Pietra Tordin (87′ 34 – Daiane), 66 – Reilyn Turner (90’+3 8 – Hina Sugita)
Subs not used: 1 – Bella Bixby; 10 – Deyna Castellanos, 16 – Sam Hiatt, 33 – Naomi Powell, 77 – Alex Spaanstra
Head Coach: Rob Gale (Adam Day, acting)
Stats Summary: Racing Louisville FC / Portland Thorns
Shots: 25 / 16
Shots on Goal: 6 / 8
Expected goals: 2.6 / 1.78
Possession: 46.7% / 53.3%
Fouls: 17 / 12
Offside: 1 / 0
Corners: 11 / 2
Discipline Summary
Racing Louisville FC:
90’+4 Savannah DeMelo (yellow)
90’+5 Sergio Gonzalez (yellow)
Portland Thorns:
36′ Julie Dufour (yellow)
75′ Jayden Perry (yellow)
87′ Mimi Alidou (yellow)
Match referee: Gerald Flores