The game was tied 2-2 early in the final period when Michael Frolik got control of the puck behind the Detroit net and sent a pass into the slot, where Halischuk blasted it home for his first goal as a Jet.
Al Montoya stopped 26-of-28 shots to earn the victory.
Henrik Zetterberg and Danny DeKeyser each scored for the Red Wings, whose three-game winning streak was snapped in their first visit to Winnipeg since it re-entered the NHL in 2011.
Detroit last played in the Canadian city in 1996, before the then-Jets moved to Phoenix.
Jimmy Howard made 43 saves for the Wings.