Soak the cannellini beans overnight in water, or use the quick-soak method by bringing them to a boil for 2 minutes, then letting them sit covered for 1 hour. Drain and rinse the beans, then place them in a pot covered with fresh water. Simmer for 1 hour until the beans are tender but not falling apart. Drain well before adding to the sauce—this removes excess starch and prevents the final dish from becoming too thick.
In an oven-proof pot, cook the bacon pieces over medium heat until crispy and the fat is rendered, about 5-7 minutes. Remove the bacon and set aside, leaving about 2 tablespoons of fat in the pot. Add the diced onion to the bacon fat and cook over medium heat until deeply caramelized, about 8-10 minutes, stirring occasionally. I like to let the onions sit undisturbed for a minute or two between stirs—this develops a golden crust that adds real depth to the sauce.
Add the minced garlic to the pot and cook for 30 seconds until fragrant. Stir in the chile flakes, smoked paprika, and fresh sage, cooking for another 30 seconds to bloom the spices. Add the tomato paste and stir constantly for 1-2 minutes to caramelize it slightly in the pot—this intensifies its savory umami flavor. Pour in the crushed tomatoes and beef stock, stirring well to combine all ingredients.
Add the cooked beans from Step 1 back to the pot along with the reserved bacon. Stir in the honey and salt, then bring the mixture to a gentle simmer. Taste and adjust seasoning as needed. I find that the honey balances the acidity of the tomatoes and adds a subtle sweetness that rounds out all the savory spice flavors.
Cover the pot with a lid and transfer it to a 325°F oven. Bake for 1 hour and 15 minutes, allowing the beans to slowly absorb the sauce flavors and the sauce to reduce slightly. If the mixture looks too soupy after baking, remove the lid and bake uncovered for an additional 15 minutes to allow excess liquid to evaporate. The beans should be tender and the sauce should coat them gently but not be watery.
Remove the pot from the oven and stir in the fresh parsley and balsamic vinegar. The balsamic adds a subtle tang that brightens the rich tomato and bean flavors. Let the beans rest for 5 minutes before serving to allow the flavors to meld together.