The teams were tied at one until Semin took control of a faceoff win by Eric Staal and shot past Tim Thomas at 2:31 of the third. He then scored Carolina's league-leading ninth short-handed goal on a breakaway at 8:57, also on an assist from Staal.
The Hurricanes ended a two-game skid and improved to 6-2 in their last eight.
The Panthers got a goal from Dmitry Kulikov with 5:39 remaining but Anton Khudobin held on from there, finishing with 37 saves in the win.
Florida went 0 for 5 on the power play while falling to 7-29-4 at Carolina's longtime home.
Riley Nash broke a seven-period scoring drought for the Hurricanes at 3:37 of the second. Radek Dvorak speared the puck when it appeared headed out of the offensive zone and fired toward the net. Nash kicked it to his stick and scored past Thomas.
Marcel Goc scored his ninth of the season for Florida at 15:05 of the second, tying it at 1. Jonathan Huberdeau and Tomas Kopecky assisted.
Khudobin improved to 7-2 this season. Thomas had 36 saves for Florida.
The Hurricanes put pressure on Thomas midway through the first period, but the veteran turned away eight shots in four minutes after penalties to Huberdeau at 6:22 and Ed Jovanovski at 8:27.
Florida continued to be hindered by its punchless power play. The Panthers failed to convert on 10 power-play minutes Saturday and are 0 for 32 on the man advantage since Dec. 28.
The Panthers failed to score in the second after Kopecky drew a double-minor on Dvorak. During the man advantage, Tomas Fleischmann fanned on one solid scoring chance and Kulikov hit the left post.
NOTES: Carolina was shut out by Columbus and Calgary in its previous two games. The Hurricanes last suffered consecutive shutouts in November 2011, losing 4-0 at Montreal and 1-0 at home against Buffalo. ... The Panthers fell to 8-13-3 on the road. ... Jimmy Hayes, Mike Mottau and Scott Gomez were scratches for Florida; the Hurricanes held out Ryan Murphy, Drayson Bowman and Brett Bellemore. ... Since winning five in a row in mid-December, Florida is 4-6-2. ... The announced attendance was 15,476.