Glenn Phillips made 36 as he combined with the middle- and lower-order batsmen including Michael Bracewell (22) and Mitchell Santner (27) to take the total past 100 but the innings lasted only 34.3 overs.
Shami returned impressive figures of 3-18 from his six overs, while fellow quick Hardik Pandya and spinner Washington Sundar took two wickets each.
Shami bowled Finn Allen on the fifth ball of the first over at a venue making its international debut.
Mohammed Siraj sent Henry Nicholls, caught at slip for two, before Shami and Pandya took two wickets caught and bowled to rattle the visitors, whose skipper Tom Latham fell for one.
Phillips and Bracewell attempted to rebuild and hit back in a 41-run sixth-wicket stand before Shami broke through.
He got Bracewell, who hit 140 in his team's 12-run loss in the opener, caught behind.
Phillips kept up the defiance in another partnership with the left-handed Santner. The pair put on 47 before Pandya bowled Santner.
Phillips departed in an attempt to hit out spinner Sundar only to be caught at mid-wicket, and the innings soon folded.