Chad Johnson made 42 saves and survived two Edmonton goals in the second period that brought the Oilers within one heading into the third.
Jarome Iginla put the game away with an empty-net goal that came with 46 seconds left in regulation.
Dennis Seidenberg and Iginla also scored in the opening period in helping the Bruins win their fourth in a row. That streak has allowed Boston to open a five-point lead over Montreal at the top of the Atlantic Division.
Devan Dubnyk gave up three goals on 18 shots before being replaced by Jason LaBarbera.