Pat the short ribs dry, then season them all over with salt and pepper. Let them sit out for a few minutes while you get the rest of your ingredients ready.
Heat olive oil in a large, deep oven-safe pan or Dutch oven over medium-high.
Brown the ribs on every side—don’t crowd the pan, so work in batches if you need to. This takes about 10 to 15 minutes and really sets up the flavor.
Set the browned ribs aside. Toss the garlic, carrots, celery, and onion into the pan.
Cook until the veggies soften and start to caramelize, about 5–7 minutes. Stir in tomato paste and let it cook for another couple minutes.
Put the ribs back in the pan. Pour in the wine and scrape up any browned bits from the bottom.
Let the wine simmer for around 10 minutes to reduce a bit.
Add beef stock, thyme, and rosemary right in with the ribs.
Cover everything tightly and slide the pan into a preheated oven at 325°F.
Let it cook for 2.5 to 3 hours—by then, the meat should be falling off the bone. Pull out the herbs before serving.