Francis (2-2) was tremendous, as the 31-year-old southpaw needed just 98 pitches to navigate eight innings. He took a one-hit shutout into the eighth inning before Joe Mahoney connected on a one-out home run that brought the Tides to within 2-1.
Ryan Adams followed Mahoney's home run with a double to left, and he moved to third on a fly out by Steve Tolleson. Francis escaped the threat, however, by striking out Xavier Avery to register his ninth punchout on the night.
In the ninth, Norfolk put two runners on with one out against Bats' reliever Josh Judy, but Bill Hall grounded into a game-ending double play to end the contest and give Louisville the win in game one of the four-game set.
Johnson (1-1) allowed just four hits and two walks while striking out seven, as he faced just three batters over the minimum. The only inning in which he struggled was the fourth, as he yielded a two-out double by Neftali Soto prior to a home run by former Tide Mike Costanzo.
Johnson has now allowed two earned runs or less in each of his four outings this season, as he owns a 2.38 ERA with 23 strikeouts in 22.2 innings pitched.
The Tides and Bats will continue their four-game set on Saturday night, with first pitch set for 7:15. Brad Bergesen (0-1, 7.02) will take the hill for Norfolk against right-hander Sean Gallagher (0-2, 9.60).
After the game there will be fireworks show, courtesy of USAA.