Seattle Sounders won the MLS Cup for the second time in their history after goals from Kelvin Leerdam, Victor Rodriguez and Raul Ruidiaz earned them a 3-1 victory over Toronto FC.
Brian Schmetzer's side were second best for much of the game at CenturyLink Field but triumphed after a stroke of luck gifted Leerdam a deflected opening goal.
Rodriguez lit up the game with a tremendous solo effort 14 minutes from time and Ruidiaz added a third as the Western Conference Final winners were crowned champions for the first time since 2016.
The result was cruel on Toronto, who scored late through Jozy Altidore and played the better football, but Seattle claimed revenge for their defeat to the same opponents in the 2017 final.
Roman Torres lifted a shot over the crossbar from 12 yards as the Sounders pressed hard early on, but Toronto grew in confidence and the hosts needed a good one-handed save from goalkeeper Stefan Frei to keep Jonathan Osorio from grabbing the opener.
The best chance of a goalless first half fell to Ruidiaz when he controlled Nicolas Lodeiro's cross from the right but could only shoot straight at Quentin Westberg, who parried his angled drive away.
Seattle broke the deadlock against the run of play after surviving a period of intense Toronto pressure, Leerdam controlling Ruidiaz's pass and turning Nicolas Benezet before scoring with a low shot that took a wicked deflection off Justin Morrow's foot.
Toronto sent on Altidore for his debut in these play-offs but moments after his introduction Rodriguez, on as a substitute just after the hour mark, collected the ball just outside the box and hammered a powerful right-footed strike into the far corner of the net.
Ruidiaz missed a golden chance to make it three moments later but made amends when he powered past Chris Mavinga and latched onto Gustav Svensson's long pass before clipping a shot over Westberg to start the celebrations.
Playing for pride in the dying seconds, Toronto mustered a consolation when Altidore met Alejandro Pozuelo's cross with a powerful header beyond Frei but it was too little, too late for the visitors.