
Portland Timbers vs Real Salt Lake, 2025 MLS, Western Conference Playoffs - Wild Card
· MLS3 - 1
Mora scores 2, Timbers beat Real Salt Lake to advance in MLS playoffs
![Timbers goal v RSL [1296x729]](https://a.espncdn.com/photo/2025/1023/r1564486_1296x729_16-9.jpg)
Felipe Mora's two first-half goals propelled the Portland Timbers to a 3-1 wild-card victory over Real Salt Lake on Wednesday night, setting up a first-round playoff series against San Diego FC.
Match Timeline
- 0': Lineups are announced and players are warming up.
- 0': First Half begins.
- 3': Antony (Portland Timbers) wins a free kick in the defensive half.
- 3': Foul by Brayan Vera (Real Salt Lake).
- 4': Corner, Portland Timbers. Conceded by Alexandros Katranis.
- 4': Attempt missed. David Ayala (Portland Timbers) left footed shot from the centre of the box is too high. Assisted by Kristoffer Velde with a cross following a corner.
- 8': Foul by Finn Surman (Portland Timbers).
- 8': Victor Olatunji (Real Salt Lake) wins a free kick in the attacking half.
- 9': Alexandros Katranis (Real Salt Lake) wins a free kick in the defensive half.
- 9': Foul by Antony (Portland Timbers).
- 11': Attempt blocked. Felipe Mora (Portland Timbers) right footed shot from the centre of the box is blocked. Assisted by Kristoffer Velde.
- 13': Attempt blocked. Victor Olatunji (Real Salt Lake) right footed shot from the right side of the box is blocked. Assisted by Diego Luna.
- 15': Corner, Portland Timbers. Conceded by Zavier Gozo.
- 15': Attempt blocked. Jimer Fory (Portland Timbers) header from the centre of the box is blocked. Assisted by Kristoffer Velde with a cross.
- 15': Corner, Portland Timbers. Conceded by Brayan Vera.
- 16': Corner, Portland Timbers. Conceded by Rafael Cabral.
- 16': Attempt blocked. David Ayala (Portland Timbers) header from the centre of the box is blocked. Assisted by Kristoffer Velde with a cross.
- 16': Offside, Portland Timbers. Felipe Mora is caught offside.
- 21': Foul by Diego Luna (Real Salt Lake).
- 21': Jimer Fory (Portland Timbers) wins a free kick in the defensive half.
- 22': Felipe Mora (Portland Timbers) wins a free kick in the defensive half.
- 22': Foul by Brayan Vera (Real Salt Lake).
- 22': Noel Caliskan (Real Salt Lake) is shown the yellow card.
- 23': Diego Chará (Portland Timbers) wins a free kick on the right wing.
- 23': Foul by Noel Caliskan (Real Salt Lake).
- 24': Attempt saved. Felipe Mora (Portland Timbers) header from the centre of the box is saved in the bottom right corner by Rafael Cabral (Real Salt Lake). Assisted by Kristoffer Velde with a cross.
- 24': Goal! Portland Timbers 1, Real Salt Lake 0. Felipe Mora (Portland Timbers) right footed shot from the right side of the six yard box to the centre of the goal following a set piece situation.
- 28': Attempt missed. Victor Olatunji (Real Salt Lake) right footed shot from the right side of the box is high and wide to the right. Assisted by Zavier Gozo.
- 32': Attempt blocked. Zavier Gozo (Real Salt Lake) left footed shot from the right side of the box is blocked. Assisted by Brayan Vera.
- 32': Corner, Real Salt Lake. Conceded by James Pantemis.
- 34': Attempt missed. Diogo Gonçalves (Real Salt Lake) left footed shot from the centre of the box is too high. Assisted by Braian Ojeda with a cross.
- 35': Attempt saved. Felipe Mora (Portland Timbers) header from very close range is saved in the bottom right corner by Rafael Cabral (Real Salt Lake). Assisted by Kristoffer Velde with a cross.
- 35': Goal! Portland Timbers 2, Real Salt Lake 0. Felipe Mora (Portland Timbers) right footed shot from very close range to the bottom right corner.
- 38': Corner, Real Salt Lake. Conceded by Kristoffer Velde.
- 39': Goal! Portland Timbers 2, Real Salt Lake 1. Justen Glad (Real Salt Lake) header from the centre of the box to the top left corner. Assisted by Diogo Gonçalves with a cross following a corner.
- 41': Foul by Diego Luna (Real Salt Lake).
- 41': Jimer Fory (Portland Timbers) wins a free kick in the attacking half.
- 43': DeAndre Yedlin (Real Salt Lake) wins a free kick in the defensive half.
- 43': Foul by Kristoffer Velde (Portland Timbers).
- 45': Corner, Real Salt Lake. Conceded by Juan Mosquera.
- 45'+1': Fourth official has announced 3 minutes of added time.
- 45'+1': Foul by DeAndre Yedlin (Real Salt Lake).
- 45'+1': Kristoffer Velde (Portland Timbers) wins a free kick on the left wing.
- 45'+1': Diego Luna (Real Salt Lake) wins a free kick in the defensive half.
- 45'+1': Foul by Diego Chará (Portland Timbers).
- 45'+3': Diogo Gonçalves (Real Salt Lake) wins a free kick in the defensive half.
- 45'+3': Foul by Antony (Portland Timbers).
- 45'+4': First Half ends, Portland Timbers 2, Real Salt Lake 1.
- 45': Second Half begins Portland Timbers 2, Real Salt Lake 1.
- 45': Substitution, Real Salt Lake. Emeka Eneli replaces Noel Caliskan.
- 49': Attempt blocked. Zavier Gozo (Real Salt Lake) right footed shot from outside the box is blocked. Assisted by DeAndre Yedlin.
- 49': Attempt blocked. Diogo Gonçalves (Real Salt Lake) right footed shot from the centre of the box is blocked.
- 50': Foul by Justen Glad (Real Salt Lake).
- 50': Kristoffer Velde (Portland Timbers) wins a free kick in the defensive half.
- 51': Handball by Victor Olatunji (Real Salt Lake).
- 51': Alexandros Katranis (Real Salt Lake) wins a free kick in the defensive half.
- 51': Foul by Antony (Portland Timbers).
- 53': Corner, Real Salt Lake. Conceded by Diego Chará.
- 54': Attempt missed. DeAndre Yedlin (Real Salt Lake) right footed shot from outside the box misses to the left following a corner.
- 54': Offside, Real Salt Lake. Justen Glad is caught offside.
- 55': Attempt missed. Diogo Gonçalves (Real Salt Lake) right footed shot from outside the box misses to the left.
- 56': Foul by Finn Surman (Portland Timbers).
- 56': Victor Olatunji (Real Salt Lake) wins a free kick in the attacking half.
- 57': Attempt blocked. Alexandros Katranis (Real Salt Lake) left footed shot from outside the box is blocked. Assisted by Diego Luna.
- 57': Antony (Portland Timbers) wins a free kick in the defensive half.
- 57': Foul by Alexandros Katranis (Real Salt Lake).
- 58': Attempt saved. David da Costa (Portland Timbers) right footed shot from outside the box is saved in the top right corner by Rafael Cabral (Real Salt Lake). Assisted by Felipe Mora.
- 59': Attempt missed. Victor Olatunji (Real Salt Lake) right footed shot from outside the box is high and wide to the right. Assisted by Zavier Gozo following a fast break.
- 60': Diego Chará (Portland Timbers) wins a free kick in the defensive half.
- 60': Foul by Alexandros Katranis (Real Salt Lake).
- 62': Attempt saved. DeAndre Yedlin (Real Salt Lake) right footed shot from the right side of the box is saved in the bottom right corner by James Pantemis (Portland Timbers). Assisted by Zavier Gozo.
- 63': Attempt saved. Emeka Eneli (Real Salt Lake) right footed shot from the centre of the box is saved in the centre of the goal by James Pantemis (Portland Timbers). Assisted by Victor Olatunji.
- 64': Delay in match because of an injury Jimer Fory (Portland Timbers).
- 65': Substitution, Real Salt Lake. Rwan Cruz replaces Zavier Gozo.
- 65': Substitution, Real Salt Lake. William Agada replaces Victor Olatunji.
- 65': Delay over. They are ready to continue.
- 69': Attempt saved. Diogo Gonçalves (Real Salt Lake) right footed shot from outside the box is saved in the centre of the goal by James Pantemis (Portland Timbers).
- 70': Offside, Real Salt Lake. William Agada is caught offside.
- 71': Corner, Portland Timbers. Conceded by Justen Glad.
- 72': Corner, Portland Timbers. Conceded by William Agada.
- 72': Attempt saved. Kamal Miller (Portland Timbers) header from the centre of the box is saved in the top centre of the goal by Rafael Cabral (Real Salt Lake).
- 73': Corner, Real Salt Lake. Conceded by Kamal Miller.
- 73': William Agada (Real Salt Lake) hits the bar with a right footed shot from the centre of the box. Assisted by Diego Luna following a corner.
- 74': Antony (Portland Timbers) wins a free kick in the defensive half.
- 74': Foul by Brayan Vera (Real Salt Lake).
- 74': Brayan Vera (Real Salt Lake) is shown the yellow card for a bad foul.
- 74': Attempt saved. Rwan Cruz (Real Salt Lake) right footed shot from outside the box is saved in the centre of the goal by James Pantemis (Portland Timbers). Assisted by Diogo Gonçalves.
- 75': Handball by David Ayala (Portland Timbers).
- 76': (Portland Timbers) wins a free kick in the defensive half.
- 76': Rwan Cruz (Real Salt Lake).
- 77': Offside, Real Salt Lake. Rwan Cruz is caught offside.
- 78': Substitution, Portland Timbers. Ariel Lassiter replaces Antony.
- 78': Substitution, Portland Timbers. Cristhian Paredes replaces David Ayala.
- 78': Substitution, Real Salt Lake. Jesús Barea replaces Braian Ojeda.
- 79': Emeka Eneli (Real Salt Lake) wins a free kick in the defensive half.
- 79': Foul by Felipe Mora (Portland Timbers).
- 79': DeAndre Yedlin (Real Salt Lake) is shown the yellow card for a bad foul.
- 79': Foul by DeAndre Yedlin (Real Salt Lake).
- 79': Kristoffer Velde (Portland Timbers) wins a free kick on the left wing.
- 80': DeAndre Yedlin (Real Salt Lake) wins a free kick in the defensive half.
- 80': Foul by Kristoffer Velde (Portland Timbers).
- 81': Attempt saved. Kristoffer Velde (Portland Timbers) left footed shot from the left side of the box is saved in the bottom left corner by Rafael Cabral (Real Salt Lake). Assisted by Felipe Mora.
- 81': Corner, Portland Timbers. Conceded by Rafael Cabral.
- 82': Goal! Portland Timbers 3, Real Salt Lake 1. Kamal Miller (Portland Timbers) header from the left side of the six yard box to the centre of the goal. Assisted by Ariel Lassiter following a corner.
- 84': Foul by Rwan Cruz (Real Salt Lake).
- 84': Jimer Fory (Portland Timbers) wins a free kick in the defensive half.
- 84': Diego Luna (Real Salt Lake) is shown the yellow card.
- 86': Substitution, Portland Timbers. Kevin Kelsy replaces Felipe Mora.
- 86': Substitution, Portland Timbers. Joao Ortiz replaces David da Costa.
- 86': Attempt saved. Diego Luna (Real Salt Lake) right footed shot from outside the box is saved in the top right corner by James Pantemis (Portland Timbers). Assisted by Diogo Gonçalves.
- 86': Corner, Real Salt Lake. Conceded by James Pantemis.
- 87': DeAndre Yedlin (Real Salt Lake) wins a free kick in the attacking half.
- 87': Foul by Kristoffer Velde (Portland Timbers).
- 88': Foul by Alexandros Katranis (Real Salt Lake).
- 88': Juan Mosquera (Portland Timbers) wins a free kick in the defensive half.
- 88': Alexandros Katranis (Real Salt Lake) is shown the yellow card for a bad foul.
- 88': Substitution, Real Salt Lake. Johnny Russell replaces DeAndre Yedlin.
- 89': Foul by Diego Chará (Portland Timbers).
- 89': Jesús Barea (Real Salt Lake) wins a free kick in the attacking half.
- 90': Attempt blocked. Brayan Vera (Real Salt Lake) right footed shot from outside the box is blocked.
- 90': Substitution, Portland Timbers. Omir Fernandez replaces Kristoffer Velde.
- 90': Fourth official has announced 7 minutes of added time.
- 90'+1': Attempt missed. William Agada (Real Salt Lake) right footed shot from the right side of the box is high and wide to the right. Assisted by Emeka Eneli.
- 90'+4': Delay in match because of an injury Alexandros Katranis (Real Salt Lake).
- 90'+4': Delay in match because of an injury Omir Fernandez (Portland Timbers).
- 90'+5': Delay over. They are ready to continue.
- 90'+6': Offside, Portland Timbers. Kevin Kelsy is caught offside.
- 90'+6': Attempt saved. Rwan Cruz (Real Salt Lake) header from the centre of the box is saved in the bottom left corner by James Pantemis (Portland Timbers). Assisted by Justen Glad with a cross.
- 90'+7': Alexandros Katranis (Real Salt Lake) wins a free kick in the defensive half.
- 90'+7': Foul by Kevin Kelsy (Portland Timbers).
- 90'+7': Attempt blocked. Jesús Barea (Real Salt Lake) right footed shot from the left side of the box is blocked. Assisted by Rwan Cruz.
- 90'+8': Dangerous play by Kevin Kelsy (Portland Timbers).
- 90'+8': Rwan Cruz (Real Salt Lake) wins a free kick in the attacking half.
- 90'+8': Attempt missed. Diogo Gonçalves (Real Salt Lake) right footed shot from outside the box misses to the right following a set piece situation.
- 90'+9': Second Half ends, Portland Timbers 3, Real Salt Lake 1.
- 0': Match ends, Portland Timbers 3, Real Salt Lake 1.
Statistics
![]() |
POR![]() |
|
---|---|---|
15 | Fouls | 14 |
5 | Yellow Cards | 0 |
0 | Red Cards | 0 |
3 | Offsides | 2 |
6 | Corner Kicks | 7 |
5 | Saves | 6 |
52.2 | Possession | 47.8 |
22 | SHOTS | 12 |
7 | ON GOAL | 8 |
0.3 | On Target % | 0.7 |
0 | Penalty Goals | 0 |
0 | Penalty Kicks Taken | 0 |
443 | Accurate Passes | 383 |
519 | Passes | 465 |
0.9 | Pass Completion % | 0.8 |
6 | Accurate Crosses | 6 |
17 | Crosses | 22 |
0.4 | Cross % | 0.3 |
48 | Long Balls | 46 |
25 | Accurate Long Balls | 24 |
0.5 | Long Balls % | 0.5 |
7 | Blocked Shots | 3 |
4 | Effective Tackles | 4 |
9 | Tackles | 10 |
0.4 | Tackle % | 0.4 |
19 | Interceptions | 3 |
26 | Effective Clearances | 42 |
26 | Clearances | 42 |
Game Information
Venue: Providence Park
Location: Portland, Oregon, USA
Line-Ups
Portland Timbers (4-2-3-1)
No. | Name |
---|---|
41 | James Pantemis (GK) |
4 | Kamal Miller |
20 | Finn Surman |
27 | Jimer Fory |
29 | Juan Mosquera |
10 | David Da Costa |
24 | David Ayala |
21 | Diego Chará |
9 | Felipe Mora |
99 | Kristoffer Velde |
11 | Antony |
Real Salt Lake (4-2-3-1)
No. | Name |
---|---|
1 | Rafael (GK) |
4 | Brayan Vera ![]() |
15 | Justen Glad |
98 | Alexandros Katranis ![]() |
2 | DeAndre Yedlin ![]() |
8 | Diego Luna ![]() |
92 | Noel Caliskan ![]() |
6 | Braian Ojeda |
17 | Victor Olatunji |
10 | Diogo Gonçalves |
72 | Zavier Gozo |
MLS News

Felipe Mora's two first-half goals propelled the Portland Timbers to a 3-1 wild-card victory over Real Salt Lake on Wednesday night, setting up a first-round playoff series against San Diego FC.

Felipe Mora scores 2 goals in 1st half for Timbers

The Chicago Fire kicked off the 2025 MLS playoffs with an impressive win over Orlando City in the Eastern Conference Wild Card game to advance to a series against the Philadelphia Union.

Inter Miami CF defender Noah Allen insists the team enters the MLS Cup playoffs with high expectations, emphasizing that anything less than lifting the trophy would be considered a failure.

The MLS Cup playoffs begin with the Wild Card round, and ESPN details which of Chicago, Orlando, Portland and Salt Lake will be moving on to Round 1.