01 -
Preheat your oven to 350°F (175°C). Lightly grease a 9×13 baking dish with butter.
02 -
In a medium skillet, heat olive oil over medium heat. Add sliced onions with salt and pepper. Cook, stirring occasionally, until onions are caramelized. Remove and set aside.
03 -
In the same skillet, cook bacon until crisp. Remove, drain grease, and crumble.
04 -
In a saucepan, melt butter over medium heat. Sprinkle flour over butter, whisk to form a roux. Cook for 2 minutes.
05 -
Gradually add milk to the roux, whisking constantly. Bring to a simmer and let thicken slightly, about 2-3 minutes after simmering.
06 -
In the prepared baking dish, layer half the potatoes, caramelized onions, bacon, cheese, and sauce. Repeat layers.
07 -
Cover with foil and bake for 1 hour. Remove foil and bake an additional 30 minutes or until potatoes are tender.
08 -
Let cool for 10 minutes before serving.