In a large pot of boiling, salted water, cook the brussels sprouts for 5 minutes. Drain and rinse with cold water.
In a large skillet, cook the bacon over medium heat, stirring, until crisp, 8 to 10 minutes; drain, reserving the bacon fat. Add 2 tablespoons olive oil to the skillet, then stir in the onions and cook over medium heat, stirring, until browned, 8 to 10 minutes. Transfer to a bowl.
Add 2 tablespoons of the reserved bacon fat and the remaining 1 tablespoon olive oil to the skillet and increase the heat to high. Add the brussels sprouts and cook, tossing, until beginning to brown, about 5 minutes. Remove from the heat and stir in the onions and half the bacon; season with salt and pepper. Top with the remaining bacon.