Maccelli and Shayne Gostisbehere each had two assists for the Coyotes (8-13-4), who also had their six-game losing streak end (0-4-2).
"I think defensively, for the most part, we took their strength in the offensive zone away, and [Vejmelka] took care of the rest," Coyotes coach Andre Tourigny said. "We were relentless. We were heavy. We went toe to toe with them on the intensity."
David Pastrnak scored for the fourth straight game for the Bruins (21-4-1), who had a five-game point streak end. Jeremy Swayman made 12 saves.
"I wanted to make sure I was keeping it one shot at a time and making saves when I needed to, and I was one save short," Swayman said. "I want to fix that and move on."
Nick Schmaltz gave Arizona a 3-2 lead 53 seconds into the third period, finishing off a rush with Clayton Keller after Gostisbehere helped force a turnover on Pastrnak in the defensive zone.
Nick Foligno tied it 3-3 at 14:31, one-timing a pass from David Krejci in the right circle on the power play.
"It's hard to pick us apart when you have that many shots in a game (46). The team did a lot of good things … but we wanted finish more, obviously," Foligno said. "We dominated that team. It's unfortunate we didn't come away with the win."
Brown scored 23 seconds into the first period to give Arizona a 1-0 lead, chipping in and scoring short side from the right circle.
Pastrnak tied it 1-1 at 4:52 with a one-timer from the left circle on a power play.