Campbell moved to 8-12 on the season, while Richmond dipped to 7-11.
The Camels led it 5-2 after a four run fifth. Hahs doubled in a pair and Zach Minnick followed with a two out double off the left field wall to add another. Kyle Mehl added a fourth Campbell run with a RBI single.
The Spiders rallied in the bottom of the ninth, scoring two on a D.J. Lee two out single before a strikeout ended the game.
Kirk (2-2) picked up the win for the Camels, pitching seven innings with two runs on five hits, adding five strikeouts and two walks.
Harry Thomas earned the save, his first of the season, allowing two runs on three hits with two strikeouts and a walk in two innings.
Layne Looney (1-2) took the loss, allowing four runs, one earned, on three hits with two strikeouts and five walks in 4 1/3 innings pitched. Daniel Brumbaugh pitched three scoreless for the Spiders to close the game, striking out two. Jonathan De Marte bridged the gap, allowing an unearned run on three hits with two strikeouts.
Lee paced Richmond at the plate, going 2-for-5 with two RBI.
Next up for the Camels will be a Tuesday, March 21 trip to North Carolina State. Campbell begins Big South play at Gardner-Webb on March 24.