Preheat oven to 350°F. Season short ribs all over with salt and pepper.
In a large cast iron Dutch oven, heat oil over medium-high heat. Cook ribs in batches until browned on all sides. Remove to a plate or tray. Pour off all but 2 tablespoons of drippings in the pot.
Add carrots, celery, and onions to the drippings in the pot. Cook over medium-high heat, stirring frequently, until browned (about 5 minutes). Add flour, tomato paste, and garlic. Cook, stirring constantly, until completely combined, about 2-3 minutes.
Stir in the red wine and the short ribs, along with any accumulated juices from the plate. Bring to a boil, then reduce the heat to medium. Simmer for about 20-30 minutes or until the wine is reduced by about half.
Add the thyme, rosemary, parsley, bay leaves, brown sugar, and beef broth to the pot. Bring to a boil, cover with the lid, and transfer to the oven.
Cook until the short ribs are tender, about 2–2½ hours.
Transfer short ribs to a plate. Strain cooking liquid through a fine-mesh sieve, discarding solids. Skim fat from cooking liquid. Taste the sauce and season with salt and pepper, if desired.
Serve short ribs on top of mashed potatoes. Spoon or pour the sauce over the ribs and potatoes. Garnish with fresh parsley.