Preheat your oven to 425F/220C.
Cut the end off the Brussels sprouts, then slice them into quarters. Some leaves may come loose and that's okay.
Add the Brussels sprouts and any loose leaves to a sheet pan. Toss with oil, salt and pepper.
Roast the Brussels sprouts for 25-30 minutes, stirring halfway through.
While the Brussels sprouts are cooking, slice the bacon into 1/2-inch thick pieces. Add the bacon to a pan on medium heat and cook until the bacon become crispy, stirring frequently. Use a slotted spoon to remove the bacon to a paper towel.
At the same time you're cooking the bacon, add the balsamic vinegar to a small pot. Simmer this on medium heat for 10-12 minutes, or until it's reduced by a third to a half. When it's done, you should have about 3 tablespoons remaining in the pot. Then turn off the heat.
Drain off most of the bacon grease (you can render and save the bacon grease for future use!), but keep one tablespoon left in the pan.
Add the diced onion to the pan and cook on medium heat for 2-3 minutes, or until it becomes translucent. Add the crispy bacon back to the pan, give it a stir and turn off the heat.
When your Brussels sprouts are done, remove them from the oven. Add the onions and bacon and drizzle with the balsamic reduction. Stir everything together and serve.