Preheat your oven to 325°F (163°C). Pat the short ribs dry and season all over with salt and pepper. Heat olive oil in a large Dutch oven over medium-high heat. Sear the short ribs on all sides until well-browned, about 3–4 minutes per side. Remove and set aside.
In the same pot, reduce heat to medium and add onions and carrots. Cook until softened, about 5–6 minutes. Stir in garlic and tomato paste and cook for 1–2 minutes until fragrant and slightly caramelized.
Pour in the red wine and stir, scraping up any browned bits from the bottom of the pot. Let the wine simmer for 2–3 minutes to reduce slightly. Add beef broth, cranberries, thyme, and bay leaf. Stir and return short ribs to the pot, nestling them into the liquid.
Cover the pot and transfer it to the oven. Braise for 2.5 to 3 hours, or until the meat is fork-tender and pulling away from the bone. Check occasionally to ensure liquid hasn’t reduced too much; add more broth if needed.
Remove the ribs and skim excess fat from the sauce. Simmer the sauce uncovered for 10–15 minutes to reduce, if desired. Taste and adjust with salt, pepper, or a splash of balsamic vinegar or sugar to balance the cranberry tartness.