The home side took the lead early on in the fifth minute when Hall collected a pass from Lee Chung-Yong, before letting fly with his left foot from the centre of the box.
Millwall pushed for an equaliser as Martyn Waghorn had two efforts kept out following a save and a well-timed block.
Bolton managed to restore their advantage just before half time when Beckford scored with his left foot.
First-half hero Beckford tried to push Bolton further into the lead when he struck an effort from 40 yards out, which was somehow kept out by the Millwall goalkeeper as it looked headed for the bottom corner.
Bolton were denied again when Alex Baptiste's effort was kept out.
Millwall's Liam Feeney nearly put the visitors back on level terms as he got a shot away on goal having been forced out wide, but his effort went over the bar, before Moritz converted late on to give Bolton all three points.