The Red Wings captured their third in a row and won at home for the eighth time in 11 games this season.
Olli Jokinen produced a power-play goal for Calgary 5:06 into the third to forge a 3-3 tie, but Datsyuk put the Red Wings back in front with 7:21 to go. His goal came on the power play off the second assist of the contest by Nicklas Lidstrom.
Filppula quickly gave Detroit some insurance by putting a backhander by Miikka Kiprusoff.
Tomas Holmstrom scored his second and third goals of the season for Detroit, both coming on the power play.
Jimmy Howard made 21 saves to get the win. Kiprusoff stopped 24-of-29 shots.