5 pounds beef short ribs, cut into 2-inch pieces
3 tablespoons vegetable oil
2 medium onions, chopped
4 cloves garlic, roughly chopped
1 large parsnip, peeled and chopped (about 1 cup)
3 ribs celery, trimmed and chopped (about 1-1/2 cups)
3 tablespoons tomato paste
1 750-ml bottle dry red wine
1/2 cup ruby port
3 tablespoons sugar
2 cups fresh cranberries (about 2/3 bag)
4 sprigs fresh thyme
1 bay leaf
1 teaspoon whole black peppercorns
3 cups beef or veal stock
Kosher or sea salt and freshly ground black pepper, to taste
Heat oven to 375°. In a large Dutch oven over medium-high heat, brown ribs in oil (in batches if necessary), about 2 minutes per side. Remove to a plate.
Lower heat to medium and sauté onions and garlic until soft, about 5 minutes. Add parsnip and celery; cook 5 minutes. Add tomato paste and cook an additional 3 minutes. Add wine, port, sugar, cranberries, thyme, bay leaf, and peppercorns. Cook until liquid is reduced by half, about 30 minutes.
Add stock, bring to a boil, and cook about 5 minutes. Return ribs to the pan and cover tightly; bake 3 hours. Let cool slightly, then remove ribs from liquid, separate meat from bones and cartilage, and reserve meat (discard bones and cartilage).
Pass vegetables and liquid through a sieve or a double layer of cheesecloth to separate liquid from solids, discarding solids. Skim oil from sauce and discard. Return liquid to stove and heat gently 5 minutes. Season with salt and pepper. Serve meat with sauce.