0.25 cup flat-leaf parsley – finely chopped (for gremolata)
1 each lemon – zest finely grated (for gremolata)
1 clove garlic – very finely minced (for gremolata)
risotto alla milanese – for serving
Instructions
Heat the oven to 325°F. Pat the veal shanks dry and tie each with kitchen twine if loose so they hold their shape; season all sides with kosher salt and black pepper, then dredge in all-purpose flour, shaking off the excess.
Heat the olive oil and unsalted butter in a large Dutch oven over medium-high heat until shimmering. Brown the shanks well on both cut sides, 3–4 minutes per side, then transfer to a plate.
Add the onion, carrot, and celery to the pot and cook, stirring and scraping up any browned bits, until softened and lightly golden, 6–8 minutes.
Pour in the dry white wine and simmer, scraping the bottom, until mostly reduced, 2–3 minutes.
Return the shanks to the pot. Add the low-sodium chicken stock to come about halfway up the meat (about 2.5 cups), tuck in the bay leaf and thyme sprigs, and bring to a gentle simmer.
Cover and transfer to the oven. Braise until the veal is very tender and nearly falling from the bone, 1 hour 30 minutes to 2 hours; the marrow should be soft and the meat easily pierced with a fork.
For the gremolata, combine the flat-leaf parsley, the finely grated zest from the lemon, and the minced garlic on a board and chop together until fine.
Remove the pot from the oven. Transfer the shanks to a warm platter and tent with foil. Discard the herb stems, skim any surface fat, and simmer the sauce on the stove uncovered until slightly thickened and glossy, 5–10 minutes; adjust seasoning to taste.
Return the shanks to the pot to warm through, 2 minutes. Spoon the sauce over the meat, scatter the gremolata on top, and serve hot with risotto alla milanese, if desired.