Portland Timbers vs Real Salt Lake

26 July 2026 · MLS · 2026 · Referee Elijio Arreguin

Full time 2 – 1

Half-time: 0–1

  • Felipe Mora 56’, 67’
  • Juan Sanabria 18’

Match summary

Portland Timbers came from behind to win 2-1 at home to Real Salt Lake. Real Salt Lake led 1-0 at half-time.

Juan Sanabria put Real Salt Lake ahead in the 18th minute, Felipe Mora equalised with a header in the 56th minute, and Mora won it with a header in the 67th minute.

The chances backed that up: Portland Timbers created 2.59 expected goals (xG) from 22 shots to Real Salt Lake's 0.15 from 6. Real Salt Lake had a player sent off.

Match stats

61% Possession 39%
22 Shots 6
6 Shots on target 2
14 Corners 5
71 Attacks 57
64 Dangerous attacks 29
526 Passes 340
88.4% Pass accuracy 77.6%
12 Tackles 17
12 Fouls 13
2 Yellow cards 1
0 Red cards 1
4 Offsides 2

Key events

Portland Timbers Real Salt Lake
Kick-off
10’
14’
Zavier GozoShot on target
18’
Juan SanabriaLeft foot shot0-1 (Real Salt Lake)
33’
Morgan GuilavoguiVAR: Card upgraded
34’
Morgan GuilavoguiViolent conduct
41’
Half-time0-1
Cole BassettShot on target
46’
David Pereira Da CostaShot on target
49’
Kristoffer VeldeShot on target
50’
Second half underway
55’
Felipe MoraHeader1-1 (Portland Timbers)
56’
Felipe MoraHeader2-1 (Portland Timbers)
67’
Alexander AravenaFelipe Mora
72’
Kristoffer VeldeShot on target
89’
Full-time2-1

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 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.59 0.15 18’ Juan Sanabria (Real Salt Lake), 0-1 18’ 56’ Felipe Mora (Portland Timbers), 1-1 56’ 67’ Felipe Mora (Portland Timbers), 2-1 67’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.59 0.15 18’ Juan Sanabria (Real Salt Lake), 0-1 Sanabria 18’ 56’ Felipe Mora (Portland Timbers), 1-1 Mora 56’ 67’ Felipe Mora (Portland Timbers), 2-1 Mora 67’
Portland Timbers 2.59 xGReal Salt Lake 0.15 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Real Salt Lake attacking Portland Timbers attacking 
90’ Alexander Aravena (Portland Timbers), from a corner, 0.94 xG, off target 56’ Felipe Mora (Portland Timbers), from a corner, 0.26 xG, goal 67’ Felipe Mora (Portland Timbers), from a corner, 0.17 xG, goal 89’ Kristoffer Velde (Portland Timbers), open play, 0.16 xG, saved 90’ José Caicedo (Portland Timbers), from a corner, 0.14 xG, off target 39’ Felipe Mora (Portland Timbers), open play, 0.13 xG, blocked 16’ Felipe Mora (Portland Timbers), from a corner, 0.12 xG, off target 46’ Cole Bassett (Portland Timbers), open play, 0.12 xG, saved 27’ Kristoffer Velde (Portland Timbers), open play, 0.10 xG, off target 87’ David Pereira Da Costa (Portland Timbers), open play, 0.09 xG, blocked 88’ Alexander Aravena (Portland Timbers), open play, 0.07 xG, off target 40’ Kristoffer Velde (Portland Timbers), open play, 0.04 xG, blocked 14’ Zavier Gozo (Real Salt Lake), open play, 0.04 xG, saved 18’ Juan Sanabria (Real Salt Lake), open play, 0.03 xG, goal 29’ Jímer Fory (Portland Timbers), set piece, 0.03 xG, off target 30’ Kristoffer Velde (Portland Timbers), open play, 0.03 xG, off target 50’ Kristoffer Velde (Portland Timbers), open play, 0.03 xG, saved 63’ Brandon Bye (Portland Timbers), from a corner, 0.03 xG, blocked 71’ Sergi Solans (Real Salt Lake), open play, 0.03 xG, off target 16’ Kristoffer Velde (Portland Timbers), open play, 0.02 xG, blocked 49’ David Pereira Da Costa (Portland Timbers), open play, 0.03 xG, saved 52’ Cole Bassett (Portland Timbers), open play, 0.03 xG, hit the woodwork 14’ Noel Caliskan (Real Salt Lake), from a corner, 0.02 xG, off target 63’ Cole Bassett (Portland Timbers), open play, 0.02 xG, blocked 80’ Stijn Spierings (Real Salt Lake), open play, 0.02 xG, off target 85’ Brandon Bye (Portland Timbers), set piece, 0.02 xG, blocked 26’ Kristoffer Velde (Portland Timbers), open play, 0.01 xG, blocked 47’ Lukas Engel (Real Salt Lake), open play, 0.02 xG, off target 90’ Alexander Aravena (Portland Timbers), from a corner, 0.94 xG, off target 56’ Felipe Mora (Portland Timbers), from a corner, 0.26 xG, goal 67’ Felipe Mora (Portland Timbers), from a corner, 0.17 xG, goal 89’ Kristoffer Velde (Portland Timbers), open play, 0.16 xG, saved 90’ José Caicedo (Portland Timbers), from a corner, 0.14 xG, off target 39’ Felipe Mora (Portland Timbers), open play, 0.13 xG, blocked 16’ Felipe Mora (Portland Timbers), from a corner, 0.12 xG, off target 46’ Cole Bassett (Portland Timbers), open play, 0.12 xG, saved 27’ Kristoffer Velde (Portland Timbers), open play, 0.10 xG, off target 87’ David Pereira Da Costa (Portland Timbers), open play, 0.09 xG, blocked 88’ Alexander Aravena (Portland Timbers), open play, 0.07 xG, off target 40’ Kristoffer Velde (Portland Timbers), open play, 0.04 xG, blocked 14’ Zavier Gozo (Real Salt Lake), open play, 0.04 xG, saved 18’ Juan Sanabria (Real Salt Lake), open play, 0.03 xG, goal 30’ Kristoffer Velde (Portland Timbers), open play, 0.03 xG, off target 50’ Kristoffer Velde (Portland Timbers), open play, 0.03 xG, saved 63’ Brandon Bye (Portland Timbers), from a corner, 0.03 xG, blocked 71’ Sergi Solans (Real Salt Lake), open play, 0.03 xG, off target 29’ Jímer Fory (Portland Timbers), set piece, 0.03 xG, off target 49’ David Pereira Da Costa (Portland Timbers), open play, 0.03 xG, saved 52’ Cole Bassett (Portland Timbers), open play, 0.03 xG, hit the woodwork 16’ Kristoffer Velde (Portland Timbers), open play, 0.02 xG, blocked 14’ Noel Caliskan (Real Salt Lake), from a corner, 0.02 xG, off target 63’ Cole Bassett (Portland Timbers), open play, 0.02 xG, blocked 80’ Stijn Spierings (Real Salt Lake), open play, 0.02 xG, off target 85’ Brandon Bye (Portland Timbers), set piece, 0.02 xG, blocked 47’ Lukas Engel (Real Salt Lake), open play, 0.02 xG, off target 26’ Kristoffer Velde (Portland Timbers), open play, 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-1-4-1 Starting XI
Pantemis
Fory
Surman
Miller
Bye
Chará 72’
Lassiter 57’
Velde
Bassett 86’
Costa
Mora 2 72’
Real Salt Lake 3-4-3 Starting XI
Cabral
Engel 74’
Quinton
Yedlin 58’
Sanabria 85’
Spierings
Caliskan
Gozo
Luna 74’
Guilavogui
Solans 74’

Player stats

Goalkeeper1 player
90′ 1 1 23 – – – – –
Defenders4 players
90′ 1 2 – 9 7 60 2 – – –
90′ – 3 – 3 3 69 1 – – –
90′ 2 – – 5 3 79 – – – –
90′ 2 1 – 5 2 56 1 – – –
Midfielders8 players
Diego Chará Taken off
72′ – – 39 3 0.04 1 1 3 1 1
Ariel Lassiter Taken off
57′ – 1 20 2 0.52 – – 2 – 1 –
Cole Bassett Taken off
86′ – – 40 1 0.02 – – 1 2 1
90′ – – 58 5 0.21 2 – 5 – 2 –
90′ – 1 35 5 0.42 2 – 14 2 4 –
Antony Alves Came on as a substitute
33′ – – 12 – 0.12 – – – 2 – –
José Caicedo Came on as a substitute
18′ – – 13 2 0.01 2 1 2 – – –
Joao Ortíz Came on as a substitute
11′ – – 7 1 0.01 – – – 1 – –
Forwards2 players
Felipe Mora Taken off
72′ 2 – 4 2 0.69 0.00 – 2 – 6 –
Alexander Aravena Came on as a substitute
18′ – – 2 – 1.01 0.01 – 1 – 7 –
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.