Panamanian left-hander Angel Cuan (1-1) had his best outing of the season, allowing just one run on two hits and no walks in six innings of work.
Zachary Von Tersch provided two innings of hitless middle relief and Robert Gagg pitched a perfect ninth to pick up his first save.
Cuan got his mistakes out of the way early, giving up a leadoff home run to Jose Altuve before hitting the next batter. Cuan proceeded to retire 17 of the next 19 batters he faced, including 14 in a row.
Kingsport (10-16) tied the game with two outs in the fifth inning when Pedro Zapata tripled and scored on a throwing error by Greeneville first baseman Oscar Figueroa, one of five errors committed by the Astros (12-15).
The K-Mets scored the winning run in the seventh on a sacrifice fly by John Freeman that plated Cesar Puello. Kingsport added an insurance run later in the inning on another error by Figueroa.
Six different Mets finished with one hit each while Ronald Harris added an RBI with a sacrifice fly in the eighth.
Kingsport travels to Pulaski Tuesday night for the first of three against the Mariners before returning to Hunter Wright Stadium for a seven-game homestand.