Nothing about this weekend looked promising for the Mets, who returned to New York earlier this week looking beaten down and beleaguered. They just had been swept by the Nationals and invited plenty of doomsday declarations.

Even with the season short of its halfway point, they made it easy to wonder if they already had ceded their chance to defend the National League pennant.

How quickly things change.

By surviving another white-knuckle evening Saturday, when they toppled the Cubs 4-3, the Mets positioned themselves to complete a stunning four-game sweep against the team that began the day with the best winning percentage in the NL.

Bartolo Colon outworked Jake Arrieta, who suffered his first regular-season road loss in 14 months. Neil Walker bashed his 15th homer of the season. Travis d’Arnaud extended his hot streak with a two-run single that proved to be the difference maker.

Setup man Addison Reed tossed 1 1⁄3 scoreless innings, recording the final out in the seventh before working the eighth. He struck out four.

And closer Jeurys Familia saved his 28th straight game to start the season, doing it this time without what has been his trademark drama.

With that, the Mets won their third straight, a spurt of resilience that came after a lackluster performance in Washington.

Arrieta, the reigning NL Cy Young Award winner, thwarted the Mets twice in the regular season last year. In those outings, Collins admitted that he had “chewed us up so easily.”

But in Game 2 of the NLCS, the Mets hung a loss on Arrieta, putting themselves on course for a sweep. On Saturday, the Mets had their way again, chasing the righthander with one out in the sixth. After allowing five runs in his previous start, Arrieta gave up four more against the Mets, easily his roughest patch of what has been another superb season.

The Mets capitalized in the first inning on Walker’s two-run shot, his first homer since June 16, a stretch of 55 consecutive at-bats. The blast knocked in Brandon Nimmo, who worked a leadoff walk.

Cubs slugger Anthony Rizzo answered with a two-run blast off Colon in the fourth, launching a towering shot that landed in the centerfield batters’ eye.

But the Mets responded in their half of the inning. With runners on first and second and two outs, d’Arnaud got just enough to loft a blooper into shallow center.

Second baseman Javier Baez got there, but failed to make a desperation catch with his bare hand. The hit glanced off his hand and hit the grass, hanging up long enough to clear the bases and put the Mets ahead 4-2.

Given the lead for the second time, Colon did not relent.

“He’s going to go pitch his game,” manager Terry Collins said before the game, when he noted that Colon also has won a Cy Young Award, though it was long enough ago (2005) to count as a past life. “I think that’s why I think he is who he is.”

Indeed, the 43-year-old frustrated the Cubs with his usual array of well-placed fastballs. He froze Kris Bryant to end the top half of the fifth and did the same to Rizzo to begin the sixth. Both times, the Cubs’ sluggers looked back at home plate umpire Laz Diaz, incredulous at his strike zone.

From the dugout, Cubs manager Joe Maddon launched his protests at the umpire, keeping up a steady critique of the umpire as the game progressed.

Colon departed with a two-run lead. He allowed two runs in six innings. Over his last eight outings, the veteran righty has pitched to a 1.96 ERA.

Erik Goeddel took over in the seventh and allowed Ben Zobrist’s two-out solo shot. Lefthanded specialist Jerry Blevins added to the trouble, walking the only batter he faced, Jason Heyward.

But the setup man Reed ended the seventh by blowing a fastball past Bryant.