Crank your oven to 350°F and generously butter a 9x13-inch baking dish. Don't skimp on the butter — it prevents sticking and adds flavor to those crispy edges.
Scatter the bread cubes evenly in your prepared dish. If some pieces are particularly large, tear them down a bit — you want roughly uniform chunks for even soaking.
In a large mixing bowl, whisk together the milk, cream, eggs, sugar, vanilla, cinnamon, and salt until completely smooth. The mixture should be creamy and pale yellow with no streaks of egg white.
Pour the custard mixture evenly over the bread cubes and let them drink it up for 15 minutes. Every few minutes, gently press the bread down with a fork to help stubborn pieces absorb the liquid — you want every cube saturated.
⏱ 15 min
Drizzle the melted butter over the soaked bread and slide into the oven for 40-45 minutes. The pudding is done when the center barely jiggles when you shake the dish and the top turns a beautiful golden brown.
⏱ 45 min
While the pudding bakes, make your caramel. Heat the sugar in a heavy-bottomed saucepan over medium heat, letting it melt without stirring. Swirl the pan occasionally until you get a deep amber color — about 8 minutes. Don't rush this; good caramel takes patience.
⏱ 8 min
Once the caramel reaches that perfect amber hue, immediately remove it from heat and whisk in the butter pieces. The mixture will bubble furiously at first — this is normal. Keep whisking until silky smooth.
Gradually stream in the cream while whisking constantly, then add the whiskey and salt. The sauce should be glossy and pourable. If it seems too thick, whisk in another tablespoon of cream.
Serve squares of the warm bread pudding with the whiskey caramel sauce generously spooned over top. The contrast between the soft, custardy interior and that boozy, buttery sauce is what dreams are made of.