Skip to MLS data
The Sporting Page Real Analysis. Not Corporate
The Sporting Page
Loading scores…
Connecting to scores…
← Soccer newsMLS · 2026

Real Salt Lake vs Portland Timbers

Regular Season

Saturday, May 2, 2026 · 4:45 pm EDT

2 – 0FinalFT

Match winner: Real Salt Lake

America First Field

Checked Nov 4, 5:37 am ESTRefresh match

Match statistics

Values retain the source’s display and precision. Some source rows labeled % are supplied as decimal ratios; no percentage conversion is inferred.

Supplied statistics for this match only.
StatisticReal Salt LakePortland Timbers
Fouls1512
Yellow Cards12
Red Cards00
Offsides01
Corner Kicks62
Saves213
Possession52.847.2
SHOTS2511
ON GOAL152
On Target %0.60.2
Penalty Goals00
Penalty Kicks Taken00
Accurate Passes445389
Passes515458
Pass Completion %0.90.8
Accurate Crosses71
Crosses1716
Cross %0.40.1
Long Balls5729
Accurate Long Balls2711
Long Balls %0.50.4
Blocked Shots25
Effective Tackles69
Tackles917
Tackle %0.70.5
Interceptions108
Effective Clearances1928
Clearances1928

Key events

  1. —
    Kickoff

    First Half begins.

  2. 10'
    Goal

    Goal! Real Salt Lake 1, Portland Timbers 0. Zavier Gozo (Real Salt Lake) right footed shot from the right side of the box to the bottom right corner. Assisted by Sergi Solans.

  3. 28'
    Goal

    Goal! Real Salt Lake 2, Portland Timbers 0. Diego Luna (Real Salt Lake) left footed shot from the centre of the box to the bottom right corner. Assisted by Juan Manuel Sanabria following a fast break.

  4. 45'+9'
    Halftime

    First Half ends, Real Salt Lake 2, Portland Timbers 0.

  5. 45'
    Substitution

    Substitution, Portland Timbers. Kamal Miller replaces Finn Surman because of an injury.

  6. 45'
    Start 2nd Half
  7. 59'
    Substitution

    Substitution, Portland Timbers. Ian Smith replaces Alex Bonetig.

  8. 59'
    Substitution

    Substitution, Portland Timbers. Alexander Aravena replaces Cole Bassett.

  9. 60'
    Yellow Card

    Jimer Fory (Portland Timbers) is shown the yellow card for a bad foul.

  10. 61'
    Substitution

    Substitution, Real Salt Lake. Philip Quinton replaces Justen Glad.

  11. 76'
    Substitution

    Substitution, Real Salt Lake. Victor Olatunji replaces Sergi Solans.

  12. 77'
    Substitution

    Substitution, Real Salt Lake. Zach Booth replaces Zavier Gozo.

  13. 82'
    Yellow Card

    Ian Smith (Portland Timbers) is shown the yellow card for a bad foul.

  14. 85'
    Yellow Card

    Juan Manuel Sanabria (Real Salt Lake) is shown the yellow card.

  15. 89'
    Substitution

    Substitution, Real Salt Lake. Aiden Hezarkhani replaces Diego Luna.

  16. 89'
    Substitution

    Substitution, Real Salt Lake. Pablo Ruiz replaces Stijn Spierings.

  17. 90'+1'
    Substitution

    Substitution, Portland Timbers. Gage Guerra replaces Kevin Kelsy.

  18. 90'+7'
    End Regular Time

    Second Half ends, Real Salt Lake 2, Portland Timbers 0.

Lineups

Players stay with their supplied roster club. Other listed players may be unused; App records source appearances, not the number of names listed. An own goal is credited in the event as supplied.

Real Salt LakeFormation 3-4-2-1

Starting lineup

PlayerPosAppGAOGYCRC
1RafaelG100000
15Justen GladCD100000
29Samuel JunquaCD-L100000
2DeAndre YedlinCD-R100000
92Noel CaliskanCM-L100000
6Stijn SpieringsCM-R100000
8Juan Manuel SanabriaLM101010
72Zavier GozoRM110000
22Sergi SolansF101000
9Morgan GuilavoguiCF-L100000
10Diego LunaCF-R110000

Other listed players

PlayerPosAppGAOGYCRC
11Dominik MarczukSUB000000
31Mason StajduharSUB000000
39Aiden HezarkhaniSUB100000
27Griffin DillonSUB000000
26Philip QuintonSUB100000
17Victor OlatunjiSUB100000
98Alexandros KatranisSUB000000
7Pablo RuizSUB100000
23Zach BoothSUB100000

Portland TimbersFormation 4-2-3-1

Starting lineup

PlayerPosAppGAOGYCRC
41James PantemisG100000
6Alex BonetigCD-L100000
20Finn SurmanCD-R100000
27Jimer ForyLB100010
5Brandon ByeRB100000
10David Da CostaAM100000
30José CaicedoLM100000
17Cole BassettRM100000
19Kevin KelsyF100000
11AntonyAM-L100000
99Kristoffer VeldeAM-R100000

Other listed players

PlayerPosAppGAOGYCRC
88Gage GuerraSUB100000
16Sawyer JuraSUB000000
9Felipe MoraSUB000000
25Trey MuseSUB000000
7Ariel LassiterSUB000000
21Diego CharáSUB000000
28Alexander AravenaSUB100000
4Kamal MillerSUB100000
23Ian SmithSUB100010

Commentary

  1. —

    Lineups are announced and players are warming up.

  2. —

    First Half begins.

  3. 1'

    Sergi Solans (Real Salt Lake) wins a free kick in the defensive half.

  4. 1'

    Foul by Finn Surman (Portland Timbers).

  5. 2'

    Finn Surman (Portland Timbers) wins a free kick in the defensive half.

  6. 2'

    Foul by Diego Luna (Real Salt Lake).

  7. 3'

    Corner, Portland Timbers. Conceded by Stijn Spierings.

  8. 5'

    Attempt saved. Diego Luna (Real Salt Lake) right footed shot from outside the box is saved in the bottom left corner by James Pantemis (Portland Timbers). Assisted by Morgan Guilavogui.

  9. 7'

    Foul by Samuel Junqua (Real Salt Lake).

  10. 7'

    Kristoffer Velde (Portland Timbers) wins a free kick in the defensive half.

  11. 8'

    Stijn Spierings (Real Salt Lake) wins a free kick in the attacking half.

  12. 8'

    Foul by David da Costa (Portland Timbers).

  13. 9'

    Attempt saved. Zavier Gozo (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 Diego Luna with a headed pass.

  14. 10'

    Goal! Real Salt Lake 1, Portland Timbers 0. Zavier Gozo (Real Salt Lake) right footed shot from the right side of the box to the bottom right corner. Assisted by Sergi Solans.

  15. 12'

    Attempt blocked. Cole Bassett (Portland Timbers) left footed shot from a difficult angle on the left is blocked. Assisted by Antony.

  16. 12'

    Attempt saved. Morgan Guilavogui (Real Salt Lake) right footed shot from the centre of the box is saved in the bottom left corner by James Pantemis (Portland Timbers). Assisted by Diego Luna with a through ball.

  17. 12'

    Corner, Real Salt Lake. Conceded by James Pantemis.

  18. 14'

    Morgan Guilavogui (Real Salt Lake) hits the bar with a right footed shot from outside the box. Assisted by Juan Manuel Sanabria.

  19. 15'

    Corner, Real Salt Lake. Conceded by Jimer Fory.

  20. 17'

    Handball by Cole Bassett (Portland Timbers).

  21. 18'

    Foul by Samuel Junqua (Real Salt Lake).

  22. 18'

    Kristoffer Velde (Portland Timbers) wins a free kick in the defensive half.

  23. 19'

    Attempt missed. Morgan Guilavogui (Real Salt Lake) right footed shot from outside the box is close, but misses to the right. Assisted by Diego Luna.

  24. 20'

    Foul by DeAndre Yedlin (Real Salt Lake).

  25. 20'

    Antony (Portland Timbers) wins a free kick in the defensive half.

  26. 21'

    Attempt blocked. Stijn Spierings (Real Salt Lake) right footed shot from outside the box is blocked. Assisted by Diego Luna.

  27. 26'

    Attempt blocked. Kristoffer Velde (Portland Timbers) right footed shot from outside the box is blocked. Assisted by Cole Bassett.

  28. 26'

    Attempt saved. Kevin Kelsy (Portland Timbers) header from the centre of the box is saved in the top centre of the goal by Rafael Cabral (Real Salt Lake). Assisted by Cole Bassett with a cross.

  29. 27'

    Attempt saved. Antony (Portland Timbers) right footed shot from the left side of the box is saved in the bottom left corner by Rafael Cabral (Real Salt Lake).

  30. 28'

    Goal! Real Salt Lake 2, Portland Timbers 0. Diego Luna (Real Salt Lake) left footed shot from the centre of the box to the bottom right corner. Assisted by Juan Manuel Sanabria following a fast break.

  31. 30'

    Foul by Alex Bonetig (Portland Timbers).

  32. 30'

    Sergi Solans (Real Salt Lake) wins a free kick in the defensive half.

  33. 31'

    Attempt saved. Sergi Solans (Real Salt Lake) right footed shot from the centre of the box is saved in the bottom left corner by James Pantemis (Portland Timbers). Assisted by Samuel Junqua.

  34. 31'

    Kristoffer Velde (Portland Timbers) wins a free kick in the defensive half.

  35. 31'

    Foul by Morgan Guilavogui (Real Salt Lake).

  36. 33'

    Attempt blocked. David da Costa (Portland Timbers) right footed shot from outside the box is blocked. Assisted by Kevin Kelsy.

  37. 35'

    Attempt saved. Sergi Solans (Real Salt Lake) right footed shot from the right side of the six yard box is saved in the centre of the goal by James Pantemis (Portland Timbers).

  38. 35'

    Attempt saved. Morgan Guilavogui (Real Salt Lake) right footed shot from the centre of the box is saved in the bottom left corner by James Pantemis (Portland Timbers). Assisted by Juan Manuel Sanabria.

  39. 36'

    Delay in match because of an injury Zavier Gozo (Real Salt Lake).

  40. 36'

    Delay over. They are ready to continue.

  41. 40'

    Kristoffer Velde (Portland Timbers) wins a free kick in the attacking half.

  42. 40'

    Foul by Samuel Junqua (Real Salt Lake).

  43. 41'

    Juan Manuel Sanabria (Real Salt Lake) wins a free kick in the defensive half.

  44. 41'

    Foul by Kevin Kelsy (Portland Timbers).

  45. 42'

    Cole Bassett (Portland Timbers) wins a free kick in the defensive half.

  46. 42'

    Foul by Juan Manuel Sanabria (Real Salt Lake).

  47. 44'

    Attempt blocked. Antony (Portland Timbers) right footed shot from the centre of the box is blocked. Assisted by Kevin Kelsy.

  48. 44'

    Corner, Portland Timbers. Conceded by Samuel Junqua.

  49. 44'

    Attempt missed. Zavier Gozo (Real Salt Lake) header from the centre of the box is too high. Assisted by Diego Luna following a fast break.

  50. 45'

    Attempt missed. Sergi Solans (Real Salt Lake) header from the centre of the box misses to the left.

  51. 45'

    Attempt missed. Morgan Guilavogui (Real Salt Lake) right footed shot from the left side of the six yard box is close, but misses to the left. Assisted by Sergi Solans.

  52. 45'

    Fourth official has announced 4 minutes of added time.

  53. 45'+1'

    Delay in match because of an injury Finn Surman (Portland Timbers).

  54. 45'+1'

    Delay in match because of an injury Sergi Solans (Real Salt Lake).

  55. 45'+4'

    Delay over. They are ready to continue.

  56. 45'+6'

    Attempt saved. Diego Luna (Real Salt Lake) left footed shot from the centre of the box is saved in the bottom right corner by James Pantemis (Portland Timbers).

  57. 45'+8'

    Attempt saved. Zavier Gozo (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 Morgan Guilavogui.

  58. 45'+8'

    Corner, Real Salt Lake. Conceded by James Pantemis.

  59. 45'+9'

    Attempt missed. Noel Caliskan (Real Salt Lake) right footed shot from outside the box misses to the left following a corner.

  60. 45'+9'

    Attempt saved. Zavier Gozo (Real Salt Lake) header from the centre of the box is saved in the centre of the goal by James Pantemis (Portland Timbers). Assisted by Noel Caliskan with a cross.

  61. 45'+9'

    First Half ends, Real Salt Lake 2, Portland Timbers 0.

  62. 45'

    Second Half begins Real Salt Lake 2, Portland Timbers 0.

  63. 45'

    Substitution, Portland Timbers. Kamal Miller replaces Finn Surman because of an injury.

  64. 48'

    Kristoffer Velde (Portland Timbers) wins a free kick in the defensive half.

  65. 48'

    Foul by Noel Caliskan (Real Salt Lake).

  66. 49'

    Foul by Sergi Solans (Real Salt Lake).

  67. 49'

    José Caicedo (Portland Timbers) wins a free kick in the defensive half.

  68. 50'

    Attempt saved. Zavier Gozo (Real Salt Lake) right footed shot from the left side of the box is saved in the bottom right corner by James Pantemis (Portland Timbers). Assisted by Diego Luna.

  69. 50'

    Attempt saved. Noel Caliskan (Real Salt Lake) right footed shot from outside the box is saved in the top centre of the goal by James Pantemis (Portland Timbers). Assisted by Diego Luna.

  70. 50'

    Attempt missed. Juan Manuel Sanabria (Real Salt Lake) header from the centre of the box is high and wide to the right.

  71. 52'

    Corner, Real Salt Lake. Conceded by Alex Bonetig.

  72. 52'

    Attempt saved. Juan Manuel Sanabria (Real Salt Lake) left footed shot from outside the box is saved in the top centre of the goal by James Pantemis (Portland Timbers). Assisted by Diego Luna.

  73. 52'

    Corner, Real Salt Lake. Conceded by James Pantemis.

  74. 53'

    Delay in match because of an injury Juan Manuel Sanabria (Real Salt Lake).

  75. 53'

    Delay in match because of an injury Kevin Kelsy (Portland Timbers).

  76. 55'

    Delay over. They are ready to continue.

  77. 59'

    Offside, Portland Timbers. Kevin Kelsy is caught offside.

  78. 59'

    Substitution, Portland Timbers. Ian Smith replaces Alex Bonetig.

  79. 59'

    Substitution, Portland Timbers. Alexander Aravena replaces Cole Bassett.

  80. 60'

    Foul by Jimer Fory (Portland Timbers).

  81. 60'

    DeAndre Yedlin (Real Salt Lake) wins a free kick on the right wing.

  82. 60'

    Jimer Fory (Portland Timbers) is shown the yellow card for a bad foul.

  83. 61'

    Substitution, Real Salt Lake. Philip Quinton replaces Justen Glad.

  84. 62'

    Attempt missed. David da Costa (Portland Timbers) right footed shot from the left side of the box is close, but misses to the right. Assisted by Kevin Kelsy.

  85. 67'

    Foul by Stijn Spierings (Real Salt Lake).

  86. 67'

    David da Costa (Portland Timbers) wins a free kick in the attacking half.

  87. 68'

    Noel Caliskan (Real Salt Lake) wins a free kick in the defensive half.

  88. 68'

    Foul by Kevin Kelsy (Portland Timbers).

  89. 68'

    Foul by Brandon Bye (Portland Timbers).

  90. 68'

    Sergi Solans (Real Salt Lake) wins a free kick on the left wing.

  91. 69'

    Foul by DeAndre Yedlin (Real Salt Lake).

  92. 69'

    Alexander Aravena (Portland Timbers) wins a free kick in the defensive half.

  93. 70'

    Foul by Philip Quinton (Real Salt Lake).

  94. 70'

    Kevin Kelsy (Portland Timbers) wins a free kick on the right wing.

  95. 73'

    Attempt missed. Kristoffer Velde (Portland Timbers) left footed shot from the centre of the box is high and wide to the left. Assisted by Alexander Aravena with a headed pass.

  96. 74'

    Attempt missed. Zavier Gozo (Real Salt Lake) right footed shot from outside the box is too high. Assisted by Diego Luna.

  97. 75'

    Attempt saved. Stijn Spierings (Real Salt Lake) right footed shot from outside the box is saved in the top left corner by James Pantemis (Portland Timbers). Assisted by Diego Luna.

  98. 75'

    Corner, Real Salt Lake. Conceded by James Pantemis.

  99. 76'

    Attempt missed. Kevin Kelsy (Portland Timbers) left footed shot from the left side of the box is close, but misses to the left. Assisted by Alexander Aravena following a fast break.

  100. 76'

    Substitution, Real Salt Lake. Victor Olatunji replaces Sergi Solans.

  101. 77'

    Substitution, Real Salt Lake. Zach Booth replaces Zavier Gozo.

  102. 78'

    Foul by DeAndre Yedlin (Real Salt Lake).

  103. 78'

    Alexander Aravena (Portland Timbers) wins a free kick in the defensive half.

  104. 79'

    Brandon Bye (Portland Timbers) wins a free kick in the defensive half.

  105. 79'

    Foul by Victor Olatunji (Real Salt Lake).

  106. 80'

    Attempt blocked. David da Costa (Portland Timbers) right footed shot from the centre of the box is blocked. Assisted by Antony with a through ball.

  107. 81'

    Delay in match (Real Salt Lake).

  108. 81'

    Delay over. They are ready to continue.

  109. 82'

    Zach Booth (Real Salt Lake) wins a free kick in the defensive half.

  110. 82'

    Foul by Ian Smith (Portland Timbers).

  111. 82'

    Ian Smith (Portland Timbers) is shown the yellow card for a bad foul.

  112. 82'

    Victor Olatunji (Real Salt Lake) wins a free kick on the left wing.

  113. 82'

    Foul by Brandon Bye (Portland Timbers).

  114. 85'

    Juan Manuel Sanabria (Real Salt Lake) is shown the yellow card.

  115. 86'

    Attempt blocked. Diego Luna (Real Salt Lake) right footed shot from the left side of the box is blocked. Assisted by Noel Caliskan.

  116. 86'

    Philip Quinton (Real Salt Lake) wins a free kick in the defensive half.

  117. 86'

    Foul by Kevin Kelsy (Portland Timbers).

  118. 88'

    Attempt missed. Kristoffer Velde (Portland Timbers) right footed shot from outside the box is too high. Assisted by José Caicedo.

  119. 89'

    Substitution, Real Salt Lake. Aiden Hezarkhani replaces Diego Luna.

  120. 89'

    Substitution, Real Salt Lake. Pablo Ruiz replaces Stijn Spierings.

  121. 90'

    Fourth official has announced 6 minutes of added time.

  122. 90'+1'

    Substitution, Portland Timbers. Gage Guerra replaces Kevin Kelsy.

  123. 90'+5'

    Victor Olatunji (Real Salt Lake) wins a free kick in the defensive half.

  124. 90'+5'

    Foul by Kamal Miller (Portland Timbers).

  125. 90'+5'

    Jimer Fory (Portland Timbers) wins a free kick in the defensive half.

  126. 90'+5'

    Foul by Victor Olatunji (Real Salt Lake).

  127. 90'+7'

    Second Half ends, Real Salt Lake 2, Portland Timbers 0.

  128. —

    Match ends, Real Salt Lake 2, Portland Timbers 0.

Sources & data scope

Supplied match statistics, events and lineups. Missing components remain unavailable; preview season aggregates are excluded from match statistics.

  • ESPN source ↗ · Checked Nov 4, 2026, 5:37 am ESTSupplied match statistics, events and lineups. Missing components remain unavailable; preview season aggregates are excluded from match statistics.

Times are Eastern Time. A selected match date does not rewind the current table or roster. Missing values are shown as —.