Preheat your oven to 325°F (160°C). Pat the beef short ribs dry with paper towels and season them all over with salt and pepper.
Heat the olive oil in a large Dutch oven or oven-safe pot over medium-high heat. Add half of the short ribs, being careful not to crowd the pot. Sear for 2-3 minutes per side, until deeply browned. Transfer the seared ribs to a plate and repeat with the remaining ribs.
Reduce the heat to medium. Add the chopped onion, carrots, and celery to the pot. Cook, stirring occasionally, for about 5-7 minutes, until the vegetables have softened.
Add the minced garlic and tomato paste to the pot. Cook for 1 minute more, stirring constantly, until the tomato paste darkens slightly.
Pour the red wine into the pot, using a wooden spoon to scrape up any browned bits from the bottom. Bring to a simmer and let it cook for 2-3 minutes to reduce slightly.
Stir in the beef broth, thyme sprigs, and bay leaves. Return the seared short ribs to the pot, arranging them in a single layer if possible. The liquid should come about three-quarters of the way up the sides of the ribs.
Bring the liquid to a gentle simmer on the stovetop. Cover the pot with a tight-fitting lid and transfer it to the preheated oven. Braise for 3 hours, or until the meat is very tender and easily pulls away from the bone with a fork.
Carefully remove the cooked ribs from the pot and set them aside on a platter. Cover to keep warm. Strain the cooking liquid through a fine-mesh sieve into a saucepan, pressing on the solids to extract all the liquid. Discard the solids.
Bring the strained sauce to a simmer over medium heat. Let it reduce for 5-10 minutes, or until it has thickened to your liking. Season with additional salt and pepper if needed. Spoon the sauce over the short ribs and serve.