Franklin (2-5, 1-2) broke a scoreless tie when Zachary Stewart scored on an 8-yard run and Brandon McFarlane booted the extra point in the first quarter.
Kaplan’s Jante Rutland scored on a 27-yard TD before Kameron Abshire’s kick knotted the game at 7-7 in the first quarter.
In the second quarter, Damien Bowie was on the receiving end of a 66-yard scoring spiral from quarterback Micheal Poledore before McFarlane kicked the extra point, giving the Hornets a 14-7 advantage.
As time expired in the second quarter, Abshire kicked a 27-yard field goal, pulling the Pirates within four of the Hornets at 14-10 at intermission.
In the second half, Kaplan outscored Franklin by a 19-0 margin en route to the comeback 29-14 win.
Rutland’s five-yard touchdown in the third quarter gave the Pirates a 17-14 advantage.
Rutland added a 32-yard score in the fourth period while David Hoffpauer scored on a 17-yard run, lifting the Pirates outfront by a 29-14 victory.
Franklin amassed 221 total yards with 125 coming on the ground and 96 through the air. Kaplan totallied 415 total yards, including 348 on the ground and 67 through the air.
Franklin was led in rushing by Poledore with 36 yards while Bowie made the grab of the 66-yard aerial from Poledore to lead the Hornets in receiving. On the night, Poledore was 7-of-15 with one touchdown and one interception.
Franklin, which suffered its second straight district loss to slip to 1-2 in league play, will complete a four-game road trip on Friday at Erath in District 9-3A action.
Kaplan (3-4, 2-1) will travel to play the Berwick Panthers in league play on Friday.