The 2019 Overwatch League season finally came to an end with a matchup between the season’s two best teams. Both earned their spot in the championship match and were no doubt set to give it their all for the title.

Only one team could prevail, however, even if both teams deserved it with their dominance throughout the season.

This time? The victor was the San Francisco Shock.

Here’s how they closed out their final--and most pivotal--match of the season.

The starting lineup for the Shock was sinatraa , Striker , ChoiHyoBin , smurf , Viol2t and Moth . The starting lineup for the Titans was Haksal , SeoMinSoo , JJANU , TiZi , SLIME and Twilight .

ChoiHyoBin celebrating Image credit: Robert Paul for Blizzard Entertainment

Map 1: Lijiang Tower

The 2019 Grand Finals began with a fight in favor of the Shock led by Overwatch League MVP sinatraa’s Doomfist on Control Center. Stellar teamplay and ultimate usage kept the Shock in control of the point for much of the round. The Titans finally took the point after the Shock got 93% of the capture.

They didn’t hold onto the point long. The Shock came charging back in the very next team fight to take the point and subsequently the round.

The next round took place on Night Market and the Titans were quick to respond to their defeat in the previous round. The Titans took the point first and continued to hold it for multiple team fights, in part because of an ultimate combination between JJANU’s Sigma and Haksal’s Doomfist.

After several lost fights, the Shock captured control of the point for the first time after Sinatraa opened up a fight with two eliminations. The teams traded point captures and fights, but the Shock came out victorious. Despite heroics from SeoMinSoo’s Reaper, he was unable to seal the round for his team.

The Shock began the match up 1-0.

Map 2: Eichenwalde

The Shock subbed out Striker and sinatraa for Rascal and Architect for the second map of the match. All other players remained in the match. The Shock were set to attack first with the Titans beginning on the defending side.

After both teams played to the meta in the first map, the Shock opened up their attack on the second map with a composition that included Bastion and Mei. The strategy proved to be effective and the Shock captured the point in their first attempt.

They carried that momentum into the streets phase of Eichenwalde, winning their first team fight. They took the second team fight with some well used ultimates and wound up rolling into the Eichenwalde castle with well over four minutes in the time bank. The Shock rolled through their attack without losing a team fight. They had 2:49 left on the clock.

The ball was in the Titans’ court to respond. They left the spawn room to face a Shock defense that included Rascal’s Pharah and Architect’s Bastion. They were unphased and pushed through a lengthy teamfight in which Rascal built up and used his Rocket Barrage to secure the point.

Streets phase began with an early team fight where SeoMinSoo quickly cleaned up and dispatched the Shock. The Titans attack began to look as unstoppable as the Shock did on their attack, as they rolled past the second objective without losing a team fight.

The Shock finally halted the Titans offense in their first fight within the castle, but they would not be impeded for long. A few big kills from SeoMinSoo helped propel the Titans to the finish line. Their attack time was nearly identical to the Shock’s as they had 2:47 remaining on the clock. There were just two seconds separating the teams on their initial attack.

The Titans began their second attack first. A sloppy team fight led to the Titans’ defeat in their first attack despite some well-placed shots from Twilight’s Ana against Rascal’s Pharah. A seemingly sure-victory for the Titans in the next team fight was turned around by a great Rocket Barrage and some additional rockets from Rascal. The round ended without the Titans capturing the point.

Still, the round wasn’t entirely futile for the Titans. They captured 55.4% of the point, forcing the Shock to get at least one tick and then some in order to take Eichenwalde.

The teams switched sides again and the Shock were on the attack. The Titans holed the Shock up underneath the bridge and stalled out much of the Shock’s time bank with a drawn out teamfight.

When overtime began, all looked lost for the Shock. However, a clutch ultimate from ChoiHyoBin and several follow-up kills by his teammates led to the Shock closing out the map and the point. The Shock were up 2-0.

Map 3: Temple of Anuibis

Temple of Anubis began with the Shock bringing back in their starting DPS pair, sinatraa and Striker. There were no changes on the side of their opponents. The Titans began their attack first on Temple of Anubis as they charged into the Shock defense.

Despite their 2-0 deficit, the Titans made it clear they were not going to back down and lose without a fight. It took them just one fight to close out the first point before they turned their sights on the second.

The Shock responded on the second point with a performance worthy of their 2-0 lead. They held off assault after assault from the Titans, unwilling to let their fortifications be broken. Finally, with under three minutes left on the clock, the Titans began to finally find a crack in the Shock’s armor. They pushed through and after dealing with waves of staggers, captured the second point with 1:34 left in the time bank.

The Titans held off the Shock’s first attack, something that proved a challenge in previous maps. They took the opportunity to build some momentum and the Titans won another teamfight with the help of strong play from their DPS players.

Their strong offense finally stymied, the Shock struggled to make it through the first point. Finally, they found a breakthrough and captured the first point in overtime. That was all they needed for an opening as they snowballed their momentum into the next team fight. The Shock captured the second point with 2:12 in the time bank.

It was the Titans’ turn to struggle on offense next, as the Shock’s defense proved to be ironclad. With less than 15 seconds left in the attack, Haksal’s Doomfist created enough of an opening for the Titans to capture the first point for their third point total in the map. They wouldn’t get another, however, as the Shock halted their attack at the next objective.

The Shock wasted no time capturing the first objective, doing so on their very first teamfight. At worst, they were looking at a draw. An early pick by Striker looked to seal the map for the Shock, but the Titans responded by immediately getting picks of their own to hold the point. However, their opponents were undeterred and the Shock won the map in the very next teamfight. The Shock went up 3-0 and the Titans faced elimination.

Map 4: Watchpoint: Gibraltar

Once again, the Shock swapped DPS players and returned Rascal and Architect to the match. The pair started the Shock’s attack on the same Mei and Bastion composition they used on Eichenwalde previously.

The Titans were unphased, however. They took their first teamfight right where the payload started and got a quick teamfight victory. That teamfight was followed by a messy teamfight but an eventual Shock victory that allowed them to begin pushing the cart with about 2:20 remaining. Just like in previous maps, the Shock just needed the one opening and were able to win the next teamfight to roll on through the first objective.

A big Gravitic Flux from ChoiHyoBin sealed the second objective for the Shock without much resistance, giving them four minutes to push the payload to the end of the map.

The Shock were momentarily halted at the third point off the back of a big Death Blossom from SeoMinSoo but continued on to capture the last objective with 1:52 remaining.

Rascal continued to shine on Pharah just as he had on Eichenwalde previously, doing enough to halt the Titans’ first two push attempts. The Shock continued to hold until there was under 30 seconds left when a couple of kills from JJANU helped opened up the Shock defense.

After overcoming an unwelcoming first point defense, the Titans faced an equally tough second point defense. The Titans had the momentum, however, and seem determined not to let it go. They captured the second more easily than they captured the first and faced the final point that could determine how their season was going to end.

A strong defense drained the Titans time and before long they were down to their final 30 seconds. They were met by Architect’s Bastion shooting through an Amplification Matrix and were losing players one-by-one. The Shock’s defense was too strong. The Titans failed to push the payload any further and the Shock won the 2019 Overwatch League title.