Schwarber hit a two-run homer with two out in the eighth, and the Chicago Cubs topped the Seattle Mariners 6-5 for their third consecutive victory.
Schwarber's long ball was the last of three homers for Chicago, and easily the most important.
"I think that was a big character win for us right there," Schwarber said.
Brandon Brennan (1-2) struck out Javier Báez to end the seventh inning and got the first two outs of the eighth before Willson Contreras doubled. Schwarber then drove Brennan's changeup into the second deck in right field for his first homer since April 8.
Less than a week ago, Schwarber was hitting .191, but four of his last seven hits have gone for extra bases. His batting average is up to.241 now.
"I continually talk about one phrase, and that's to stay behind the ball. When he stays behind the ball, let the ball come to him rather than travel out there, that's it," Cubs manager Joe Maddon said. "He just has to stay behind his front side, stay behind the ball, not be so quick with his body. When he lets the ball come to him those are the types of things that happen."
Brad Brach (3-0) pitched 1 1/3 innings for the win and Steve Cishek got four outs for his first save of the season.
Seattle put its first two batters on in the ninth, but Tim Beckham bounced into a double play and Cishek struck out Jay Bruce to end the game. Cishek pumped his arm emphatically after Bruce looked at a called third strike with Domingo Santana on third.
While Schwarber and Cishek delivered at big moments, Seattle manager Scott Servais paid tribute to Báez's defense.
"Chances late, you have to give them credit, their shortstop he can turn some double plays," Servais said. "He's got some kind of arm, Báez does. Kind of a difference maker in that type of game tonight."
The Mariners grabbed a 5-4 lead on Edwin Encarnación's leadoff drive in the seventh. Schwarber was a spectator as Encarnación's eighth homer — and the 60th for Seattle this season — sailed into the bullpens beyond the fence in left field. The shot silenced the thousands of Cubs fans that showed up for Chicago's first game in Seattle in six years.
They had plenty to cheer a few minutes later.
Daniel Descalso hit his first career leadoff homer on the second pitch from Seattle starter Felix Hernandez. Anthony Rizzo added his sixth homer of the season in the fifth, a two-run shot that gave the Cubs a 4-3 lead.
STARTING OFF
Both starters were gone long before the dramatic finish.
Cole Hamels struck out seven in 5 1/3 innings for Chicago. He was charged with four runs, two earned, and six hits.
Hernández surrendered multiple home runs in a game for the second time this season. He allowed four runs and eight hits in six innings. He also matched his season high with eight strikeouts to give him 2,496 for his career.
"I'm feeling pretty good. That's the main thing," he said. "My body feels good. My arm feels good. Pitches are doing what they are supposed to do."
TRAINER'S ROOM
Cubs president of baseball operations Theo Epstein said reliever Brandon Morrow had an injection in his right elbow on Monday and won't throw for two or three weeks.
Morrow is coming back from offseason elbow surgery. He was shut down recently after not recovering well from a bullpen session.
ON THE FARM
Seattle optioned outfielder Mallex Smith to Triple-A Tacoma and recalled Braden Bishop. Smith went hitless in his previous 24 at-bats spanning a stretch of 10 games. The struggles at the plate seemed to carry into the field where Smith had made errors in each of his past two games and had a potential leaping catch bounce off his glove and over the fence for a home run during the 10-game stretch.
UP NEXT
Cubs: LHP Jon Lester (1-1) pitches back home for the first time since the 2014 season.
Mariners: LHP Marco Gonzales (5-0) tries to remain perfect on the season.