The victory gave the K-Mets (29-20) the series win and pulled back a game from the Astros (32-17) in the Appalachian League West Division race. Kingsport trails by three games.
Yeixon Ruiz and Jeff McNeil led off the game with back-to-back walks before Joe Tuschak knocked them in with a double to right field to stake the K-Mets to a 2-0 lead.
Jeff Diehl scored in the fourth inning when Astros starting pitcher Austin Chrismon (2-1) hit Adrian Abreu with the bases loaded.
Ruiz and Tuschak each went 2-for-4 to lead Kingsport at the plate. Tuschak doubled and knocked in three runs, and Michael Bernal added a two-run homer.
Dominican right-hander Persio Reyes (4-3) pitched six innings for the win, giving up both runs on five hits and three walks while striking out four. Luis Rengel worked two scoreless innings of relief and Robert Coles tossed a perfect ninth.
Alfredo Gonzalez and Thomas Lindauer each knocked in a run for the Astros.
Kingsport starts a nine-game homestand Monday at Hunter Wright Stadium against Princeton, followed by series against Bristol and Burlington.