Penner's power-play goal early in the second period gave the Ducks a 3-0 lead and they went on to win for the third time in four games.
Fredrik Andersen stopped 19 shots to claim the victory, which kept the Ducks tied with San Jose atop the Pacific Division.
The Sharks beat St. Louis Friday 6-3.
The Ducks drove Reto Berra from the game with five goals on 38 shots. Karri Ramo cleaned up for Calgary, stopping the only four shots he faced.
Anaheim was not called for a penalty.