Bobrovsky turned aside all 21 shots he faced over the first two periods, improving to 12-2 in his last 14 starts as the Blue Jackets posted a third straight win.
Foligno's second goal 8:48 into the third period blunted a Ducks comeback try and handed Columbus a 3-1 lead.
R.J. Umberger added a goal and an assist and Ryan Johansen also scored.
Ryan Getzlaff and Mathieu Perrault provided the offense for NHL-best Anaheim, which dropped a second straight for the first time in a month.
Frederik Andersen turned aside 29-of-33 shots.