Semenyo was also instrumental in Bristol's second goal after 48 minutes, some neat footwork and a well-timed pass putting in Kasey Palmer to round goalkeeper Jordan Mitchell and slot into an empty net.
Young forward Semenyo got the goal his performance deserved after 82 minutes, firing home at the second attempt as a slick passing move created the opening.
And Palmer shot in his second from close range in the dying minutes to complete an emphatic victory.
Bristol boss Dean Holden gave debuts to central defender Alfie Mawson and wing-back Steven Sessegnon, both on season-long loans from Fulham, making nine changes from the team who won their Championship opener against Coventry.
Northampton manager Keith Curle, returning to one of the clubs he served as a player, selected teenaged striker Caleb Chukwuemeka for his first start.
One of the two players Holden retained, skipper Tomas Kalas, suffered what looked to be a shoulder injury in an early challenge and was replaced by Taylor Moore after seven minutes, Mawson taking the captain's arm band.
Bristol went close to taking a 16th minute lead when Eliasson's left-footed free-kick from 20 yards, following a foul on Semenyo, smacked against a post.
The home side went on to dominate possession in the first half but Northampton looked well organised and limited them to few sights of goal.
It was not until after Martin's goal that Mitchell made a save. Zak Vyner's fierce right-footed shot from 25 yards brought a diving save from the keeper, who did well to tip the effort over the bar.
Curle made a change at half-time, sending on Morgan Roberts for Luka Racic. But before his shuffled side could settle, Palmer had doubled Bristol's advantage.
A second Northampton change saw former Bristol Rovers player Chris Lines replace Sam Hoskins, with City threatening more goals. By the 57th minute Curle had also sent on Ethan Johnstone for Benny Ashley-Seal.
Holden responded by giving a debut to ex-West Brom stalwart Chris Brunt as substitute for midfielder Tyreeq Bakinson, who had made his first start for the Robins.
Palmer thought he had headed City's third goal with 69 minutes gone, but after consultation with an assistant referee Tom Nield ruled that Semenyo was offside and interfering with play when the ball crossed the line.
It mattered little as Semenyo headed over from a Sessegnon cross and, although Chukwuemeka wasted a decent chance for Northampton, City's two late goals were a fair reflection of the game.