The Portland Timbers punched their ticket to the Western Conference final with a 1-0 MLS Cup Playoffs win away at the Colorado Rapids on Thursday.
Major League Soccer's first-ever Thanksgiving match wasn't the all-action event many had hoped for, with the two defenses coming out on top.
Still, both sides had chances to tie up the game before Larrys Mabiala's 90th-minute winner. Cole Bassett, Auston Trusty, and Dom Badji all missed chances for Colorado in the first half.
Yimmi Chara failed to turn the ball home at the far post for the Timbers in the second half, 20 minutes after Josecarlos Van Rankin had an effort cleared off the line by Danny Wilson.
After knocking out the top seed in the West, Portland now await the winner of the other Western Conference semi-final as Sporting Kansas City hosts Real Salt Lake. An SKC win would see the Timbers go on the road once again, while they'd host RSL at Providence Park.
Here are the full player ratings from Colorado Rapids 0-1 Portland Timbers:
Colorado Rapids player ratings
Goalkeeper and defenders
Will Yarbrough (GK) - 6 - Wasn't overly worked but dealt with everything that came his way with ease. Could do little about Mabiala's winner.
Lalas Abubakar (CB) - 8 - The Timbers tried to get in down Abubakar's side on a number of occasions but he stood tall to the challenge with some particularly impressive one-on-one defending. One criticism? He seemed to spend far too much time getting into needless spats with Timbers players.
Danny Wilson (CB) - 9 - Kept the Rapids alive with a huge goalline clearance in the 65th minute and was a giant at the back throughout.
Auston Trusty (CB) - 6 - Should have opened the scoring inside six minutes with a free header from a corner. Made up for that miss with some excellent defending, while he proved a useful passing outlet as the Rapids exploited the left flank. Will unfortunately take some of the blame for the deciding goal.
Wing-backs and midfielders
Keegan Rosenberry (RWB) - 5 - Nowhere near as active as Kellyn Acosta on the other flank but had a couple of promising moments. Fired a shot just over the bar shortly before the half-hour mark and defended well enough until the goal. He doesn't get all the blame, but he didn't cover himself in glory.
Cole Bassett (CM) - 6 - Had one decent chance in the first half, dancing through the Timbers defense before striking straight at Steve Clark. Faded fast after the break and was an obvious candidate to be replaced in favor of fresh legs.
Jack Price (CM) - 8 - Another set-piece masterclass from Price, who was almost flawless with the ball at his feet once again.
Kellyn Acosta (LWB) - 8 - Was comfortably the Rapids' best outlet from open play, charging up and down the left flank with endless reserves of energy. Created three chances and locked things up at the other end of the pitch, too.
Attacking midfielders and striker
Diego Rubio (CAM) - 7 - Tested the Portland backline with some direct running, and put plenty of hard yards in when the ball was turned over. Replaced by Namli just after the hour mark to freshen things up.
Mark-Anthony Kaye (CAM) - 6 - Not his best day, but Kaye had a couple of good moments and put in an immense amount of work. Had to be withdrawn to keep energy levels high.
Dominique Badji (ST) - 6 - Had to work on limited service but was a willing runner and forced a good save from Clark shortly before half-time. Replaced by Michael Barrios as Fraser looked to change the approach.
Younes Namli (for Rubio, 66 mins) - 4 - Was unable to open up the Timbers defense like we know he's capable of.
Michael Barrios (for Badji, 75 mins) - 4 - Lost the ball too much and didn't inject any life into the game as expected.
Jonathan Lewis (for Bassett, 75 mins) - 2 - In 15 minutes on the pitch, he failed to touch the ball at all.
Braian Galvan (for Kaye, 82 mins) - 4 - Getting Asprilla sent off was his only meaningful contribution.
Portland Timbers player ratings
Goalkeeper and defenders
Steve Clark (GK) - 9 - Was honestly the best player across the 90 minutes with a number of big saves. Played the pantomime villain role brilliantly with some time-wasting in the second half, which really got under the skin of the Rapids faithful.
Josecarlos Van Rankin (RB) - 5 - Had a tough time up against Acosta and missed a huge chance to put the Timbers in front in the 65th minute.
Larrys Mabiala (CB) - 9 - Made nine clearances at one end and scored the last-minute winner at the other. A huge performance from Mabiala, who was the hero of the hour for the Timbers.
Dario Zuparic (CB) - 8 - Came up with some huge blocks and interceptions which ultimately proved vital thanks to Mabiala's late winner.
Claudio Bravo (LB) - 7 - Had an easier night defensively than Van Rankin, which allowed him the freedom to push forward and become a nuisance in the final third.
Diego Chara (CM) - 7 - Showed all of his experience, calming the Timbers down when things got tough and kick-starting counter-attacks when the Rapids opened themselves up.
Cristhian Paredes (CM) - 6 - A couple of promising moments on the ball and put in plenty of defensive work.
Attacking midfielders and forwards
Yimmi Chara (RW) - 5 - Was pinned back somewhat by Acosta's driving runs forward. Missed a big chance at the far post in the 84th minute but it wasn't too costly in the end.
Sebastian Blanco (CAM) - 5 - A long-range effort that went just over the bar was about as good as it got for Blanco, who was totally snuffed out by the Rapids' defense. Came off in the 52nd minute with what appeared to be a pulled hamstring. The tears tell you all you need to know about the potential severity of the injury - you absolutely hate to see it.
Dairon Asprilla (LW) - 6 - Actually had a pretty good game, driving at the Rapids backline and delivering a few dangerous crosses. But will now miss the Western Conference final thanks to a ridiculous red card at the end.
Jaroslaw Niezgoda (ST) - 3 - Totally non-existent in the first half. His best moment came after the break, laying it off to Van Rankin, whose effort was cleared off the line. Even then, the Polish striker should have taken the shot on himself considering he was in the six-yard box.
Santiago Moreno (for Blanco, 52 mins) - 6 - A good 38-minute cameo from Moreno, who created a couple of chances and made three interceptions.
Felipe Mora (for Niezgoda, 67 mins) - 6 - Was a far more effective frontman than Niezgoda despite not managing to test Yarbrough himself.
Marvin Loria (for Y. Chara, 95 mins) - N/A - Brought on right at the end to run down the clock.
George Fochive (for Paredes, 96 mins) - N/A - His two touches of the ball were clearances.