The Vikings didn’t need a miracle Sunday to advance in the playoffs. Just muscle.

Their overtime victory at New Orleans was a testament to basic football tenets. They won the game in the trenches. Both lines.

Sure, Kirk Cousins altered his own personal narrative, Adam Thielen made a catch forever etched in Vikings lore, and Mike Zimmer cooked up an ingenious new wrinkle on defense. But let us not overlook the meat-and-potato workers.

The Vikings earned themselves another playoff game because their size XXXL men held their own (or better) in their matchup against the Saints’ XXXL men.

The defensive line made future Hall of Famer Drew Brees look pedestrian. The offensive line created creases for Dalvin Cook in the running game and provided ample protection for Cousins in the pocket. Presto, an upset that few predicted. Funny how that works.

The formula is not some secret sauce. It’s Football 101. Win the line of scrimmage, win the game. At least that’s the case most of the time.

The Vikings will need a repeat performance but be even better Saturday vs. the San Francisco 49ers, who pose a tougher physical challenge than what the Vikings faced in the bayou.

Video (03:01) Minnesota Vikings head coach Mike Zimmer talks about the win against the Saints and the upcoming playoff game against the San Francisco 49ers.

As Zimmer noted Monday, the playoffs are “big boy football,” and this is a big boy matchup of like-minded teams.

The 49ers and Vikings rank No. 2 and No. 4, respectively, in the NFL in rushing attempts per game. Two power rushing teams. Two brute-force defensive lines. Two blueprints that rely on brawn.

The NFL should show this game in black-and-white as an homage to yesteryear.

The two signature plays from Sunday’s victory — Cousins’ 43-yard arching pass to Thielen in overtime and Danielle Hunter’s sack/strip of Brees late in regulation — underscored the importance of line play.

The pass play was a beauty. Perfect throw, perfect catch. The other part of the equation shouldn’t go unnoticed though: Cousins had a clean pocket. He wasn’t pressured. He took a deep drop and was able to set his feet and wait for Thielen to get downfield.

Find the replay and watch right tackle Brian O’Neill strain to push All-Pro defensive end Cameron Jordan upfield to keep him away from Cousins. That was a guy refusing to lose.

Same thing with Hunter on his defining moment. He beat All-Pro tackle Ryan Ramczyk with a deke and speed rush to the inside to sack Brees and force a fumble that saved points and potentially the game.

A disruptive performance by the Vikings defensive line is standard business. That group can ruin any game plan and make even quarterback royalty look uncertain when the pass rush becomes a feeding frenzy.

The defense posted three sacks and hit Brees seven times overall, notable since he gets rid of the ball so quickly. Constant pressure contributed to Brees passing for only 208 yards, the second-lowest postseason total in his career.

What happened on the other side was perhaps more surprising.

The Vikings offensive line atoned for a miserable outing in its final regular-season game as a full unit, the Monday night loss to Green Bay. That was ugly, and disconcerting, because some of Cousins’ lowest moments have come when he looks claustrophobic. He’s extremely accurate when he has time in the pocket. Ad-libbing when he’s under duress is a recipe for failure.

O’Neill held Jordan largely in check Sunday, and the line overall didn’t resemble a flashing warning sign, which meant that position handled its job admirably.

“I thought our offensive line played really hard and tough,” Zimmer said. “I thought that Kirk had a lot of time to throw the ball, most of the time.”

The 49ers present a different degree of challenge. Their line is tenacious, one of the league’s best. San Francisco defensive tackle DeForest Buckner is an All-Pro and edge rusher Nick Bosa had a dominant rookie season. As Zimmer said, big boy football awaits.

The Vikings answered that call on both lines against the Saints. That’s where everything starts and typically gets settled. This game will be no different.