Portland Timbers vs Los Angeles FC

20 April 2025 · MLS · 2025 · Referee Guido Gonzales Jr

Full time 3 – 3

Half-time: 2–1

  • Felipe Mora 8’ (pen), 66’
  • Santiago Moreno 42’
  • Olivier Giroud 45’
  • David Martínez Morales 64’
  • Denis Bouanga 90’ (pen)

Match summary

Portland Timbers and Los Angeles FC shared the points in a 3-3 draw. Portland Timbers led 2-1 at half-time.

In the first half, Felipe Mora put Portland Timbers ahead from the penalty spot in the 8th minute, Santiago Moreno made it 2-0 in the 42nd minute, and Olivier Giroud pulled one back to make it 2-1 with a direct free kick in the 45th minute. In the second half, David Martínez Morales equalised in the 64th minute, Mora put Portland Timbers back in front with a header in the 66th minute, and Denis Bouanga equalised from the penalty spot in the 90th minute.

Los Angeles FC had the better of the chances, with 2.70 expected goals (xG) from 19 shots to Portland Timbers's 2.25 from 10.

Match stats

39% Possession 61%
10 Shots 19
3 Shots on target 9
2 Corners 7
375 Passes 583
79.7% Pass accuracy 88.0%
15 Tackles 20
12 Fouls 12
4 Yellow cards 4
1 Offsides 4

Key events

Portland Timbers Los Angeles FC
0’
S. CherundoloManagerArgument
Kick-off
Felipe MoraPenalty1-0 (Portland Timbers)
8’
18’
28’
Denis BouangaShot on target
35’
35’
Nathan OrdazShot on target
Santiago MorenoLeft foot shot2-0 (Portland Timbers)
42’
45’
Olivier GiroudFree Kick2-1 (Los Angeles FC)
45+2’
45+3’
Denis BouangaArgument
Half-time2-1
Jonathan RodríguezAntony Alves
46’
Second half underway
56’
Denis BouangaShot on target
62’
Denis BouangaShot on target
Jonathan RodríguezFoul
63’
64’
David Martínez MoralesLeft foot shot2-2 (Los Angeles FC)
Felipe MoraHeader3-2 (Portland Timbers)
66’
Kevin KelsyFelipe Mora
74’
78’
83’
Denis BouangaShot on target
84’
David Martínez MoralesShot on target
88’
Denis BouangaVAR: No penalty
90’
Denis BouangaPenalty3-3 (Los Angeles FC)
90+4’
Full-time3-3

How the chances added up

Running total of expected goals (xG) for each side through the match. xG rates each chance by how often similar shots are scored. A goal is marked where it was scored.

0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.25 2.70 8’ Felipe Mora (Portland Timbers), 1-0 8’ 42’ Santiago Moreno (Portland Timbers), 2-0 42’ 45’ Olivier Giroud (Los Angeles FC), 2-1 45’ 64’ David Martínez Morales (Los Angeles FC), 2-2 64’ 66’ Felipe Mora (Portland Timbers), 3-2 66’ 90’ Denis Bouanga (Los Angeles FC), 3-3 90’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.25 2.70 8’ Felipe Mora (Portland Timbers), 1-0 Mora 8’ 42’ Santiago Moreno (Portland Timbers), 2-0 Moreno 42’ 45’ Olivier Giroud (Los Angeles FC), 2-1 Giroud 45’ 64’ David Martínez Morales (Los Angeles FC), 2-2 Morales 64’ 66’ Felipe Mora (Portland Timbers), 3-2 Mora 66’ 90’ Denis Bouanga (Los Angeles FC), 3-3 Bouanga 90’
Portland Timbers 2.25 xGLos Angeles FC 2.70 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Los Angeles FC attacking Portland Timbers attacking 
64’ David Martínez Morales (Los Angeles FC), open play, 0.86 xG, goal 8’ Felipe Mora (Portland Timbers), penalty, 0.79 xG, goal 90’ Denis Bouanga (Los Angeles FC), penalty, 0.79 xG, goal 66’ Felipe Mora (Portland Timbers), open play, 0.53 xG, goal 42’ Santiago Moreno (Portland Timbers), open play, 0.31 xG, goal 50’ Finn Surman (Portland Timbers), from a corner, 0.19 xG, off target 75’ Olivier Giroud (Los Angeles FC), open play, 0.17 xG, blocked 62’ Denis Bouanga (Los Angeles FC), open play, 0.13 xG, saved 19’ Antony Alves (Portland Timbers), open play, 0.13 xG, hit the woodwork 45’ Olivier Giroud (Los Angeles FC), direct free kick, 0.13 xG, goal 28’ Denis Bouanga (Los Angeles FC), open play, 0.10 xG, blocked 80’ Jonathan Rodríguez (Portland Timbers), open play, 0.08 xG, blocked 87’ Denis Bouanga (Los Angeles FC), direct free kick, 0.09 xG, blocked 90+5’ David Pereira Da Costa (Portland Timbers), direct free kick, 0.07 xG, hit the woodwork 50’ David Pereira Da Costa (Portland Timbers), open play, 0.07 xG, off target 56’ Denis Bouanga (Los Angeles FC), open play, 0.06 xG, saved 28’ Denis Bouanga (Los Angeles FC), open play, 0.06 xG, saved 52’ Denis Bouanga (Los Angeles FC), open play, 0.05 xG, off target 81’ Kamal Miller (Portland Timbers), from a corner, 0.05 xG, off target 35’ Nathan Ordaz (Los Angeles FC), open play, 0.04 xG, saved 35’ Timothy Tillman (Los Angeles FC), open play, 0.04 xG, blocked 90+7’ Denis Bouanga (Los Angeles FC), direct free kick, 0.04 xG, off target 26’ Denis Bouanga (Los Angeles FC), open play, 0.04 xG, blocked 58’ Ryan Hollingshead (Los Angeles FC), open play, 0.03 xG, hit the woodwork 71’ Igor Jesus (Los Angeles FC), open play, 0.03 xG, blocked 83’ Denis Bouanga (Los Angeles FC), open play, 0.03 xG, saved 66’ Jonathan Rodríguez (Portland Timbers), open play, 0.03 xG, off target 84’ David Martínez Morales (Los Angeles FC), open play, 0.02 xG, saved 90+10’ David Martínez Morales (Los Angeles FC), from a corner, 0.01 xG, blocked 64’ David Martínez Morales (Los Angeles FC), open play, 0.86 xG, goal 8’ Felipe Mora (Portland Timbers), penalty, 0.79 xG, goal 90’ Denis Bouanga (Los Angeles FC), penalty, 0.79 xG, goal 66’ Felipe Mora (Portland Timbers), open play, 0.53 xG, goal 42’ Santiago Moreno (Portland Timbers), open play, 0.31 xG, goal 50’ Finn Surman (Portland Timbers), from a corner, 0.19 xG, off target 75’ Olivier Giroud (Los Angeles FC), open play, 0.17 xG, blocked 45’ Olivier Giroud (Los Angeles FC), direct free kick, 0.13 xG, goal 62’ Denis Bouanga (Los Angeles FC), open play, 0.13 xG, saved 19’ Antony Alves (Portland Timbers), open play, 0.13 xG, hit the woodwork 28’ Denis Bouanga (Los Angeles FC), open play, 0.10 xG, blocked 87’ Denis Bouanga (Los Angeles FC), direct free kick, 0.09 xG, blocked 80’ Jonathan Rodríguez (Portland Timbers), open play, 0.08 xG, blocked 90+5’ David Pereira Da Costa (Portland Timbers), direct free kick, 0.07 xG, hit the woodwork 50’ David Pereira Da Costa (Portland Timbers), open play, 0.07 xG, off target 28’ Denis Bouanga (Los Angeles FC), open play, 0.06 xG, saved 56’ Denis Bouanga (Los Angeles FC), open play, 0.06 xG, saved 52’ Denis Bouanga (Los Angeles FC), open play, 0.05 xG, off target 81’ Kamal Miller (Portland Timbers), from a corner, 0.05 xG, off target 90+7’ Denis Bouanga (Los Angeles FC), direct free kick, 0.04 xG, off target 26’ Denis Bouanga (Los Angeles FC), open play, 0.04 xG, blocked 35’ Nathan Ordaz (Los Angeles FC), open play, 0.04 xG, saved 35’ Timothy Tillman (Los Angeles FC), open play, 0.04 xG, blocked 71’ Igor Jesus (Los Angeles FC), open play, 0.03 xG, blocked 58’ Ryan Hollingshead (Los Angeles FC), open play, 0.03 xG, hit the woodwork 83’ Denis Bouanga (Los Angeles FC), open play, 0.03 xG, saved 66’ Jonathan Rodríguez (Portland Timbers), open play, 0.03 xG, off target 84’ David Martínez Morales (Los Angeles FC), open play, 0.02 xG, saved 90+10’ David Martínez Morales (Los Angeles FC), from a corner, 0.01 xG, blocked
Size shows xG Goal On target Off target or blocked

Hover or tap a shot for the player, minute and xG.

Lineups

Portland Timbers 4-2-3-1 Starting XI
Pantemis
Fory
Surman
Miller
Mosquera
Chará
Ayala 74’
Alves 46’
Costa
Moreno
Mora 2 74’
Los Angeles FC 4-3-3 Starting XI
Lloris
Hollingshead
Marlon
Long
Palencia
Tillman
Jesus
Delgado 78’
Bouanga
Ordaz 61’
Giroud 78’

Player stats

Goalkeeper1 player
90′ 6 3 29 – – – – –
Defenders4 players
90′ – – – 2 1 33 1 – – –
90′ 1 2 – 2 1 34 – – – –
90′ – 1 – 2 1 41 1 – – –
90′ 3 – – 4 – 41 2 – – –
Midfielders7 players
90′ – – 42 – 0.01 3 1 5 3 1 –
David Ayala Taken off
74′ – – 35 – 0.00 3 1 3 – – –
90′ 1 – 37 – 0.05 3 – 7 2 2 –
90′ – – 31 2 0.90 1 – 4 1 – –
Antony Alves Taken off
45′ – 1 14 1 0.01 1 1 2 – – –
Jonathan Rodríguez Came on as a substitute
45′ – 1 12 1 0.03 – – 4 1 1 –
Joao Ortíz Came on as a substitute
16′ – – 3 – 0.00 – – – – – –
Forwards2 players
Felipe Mora Taken off
74′ 2 – 2 2 1.32 0.02 1 4 4 18 –
Kevin Kelsy Came on as a substitute
16′ – – – – – 0.06 – 1 – 5 –
Came on Taken off Sent off Red is the most in that position for the team

Every player who took the pitch, starters first and then substitutes. A dash means none. xG and xA are expected goals and assists.

Form going into the game

Last five league games before this one, oldest first. Select one to open it.

Previous and next meeting

Shots, expected goals, timeline, lineups, team and player statistics from Bzzoiro Sports Data (sports.bzzoiro.com). Results and odds from football-data.co.uk. Referee data before 2025/26 from the Transfermarkt datasets project.