01 - Preheat the oven to 325°F.
02 - Pat the veal shanks thoroughly dry with paper towels. Combine flour, kosher salt, and black pepper in a shallow dish. Lightly dredge each shank in the flour mixture, shaking off any excess.
03 - Heat olive oil and butter in a large Dutch oven over medium-high heat. Sear the veal shanks on all sides until golden brown, approximately 3 to 4 minutes per side. Transfer the browned shanks to a plate and set aside.
04 - Add diced onion, carrots, and celery to the same pot. Sauté over medium heat until softened and fragrant, about 8 minutes. Add minced garlic and cook for an additional 1 minute until aromatic.
05 - Pour in the white wine while scraping up any browned bits from the bottom of the pot. Let the wine simmer for 2 to 3 minutes until slightly reduced.
06 - Add the crushed tomatoes with their juices, chicken stock, fresh thyme leaves, bay leaves, and lemon zest. Stir thoroughly to combine all ingredients.
07 - Return the veal shanks to the pot, nestling them into the sauce. Bring the mixture to a gentle simmer over medium heat.
08 - Cover the Dutch oven with a tight-fitting lid and transfer to the preheated oven. Braise for 2 to 2.5 hours until the meat is fork-tender and nearly falling off the bone.
09 - Remove the pot from the oven and discard the bay leaves. Use a spoon to skim off any excess fat that has risen to the surface of the sauce.
10 - Combine chopped fresh parsley, minced garlic, and lemon zest in a small bowl. Mix well to create the gremolata garnish.
11 - Transfer the osso buco to serving plates. Sprinkle generously with gremolata and additional fresh parsley. Serve immediately with risotto alla Milanese, polenta, or mashed potatoes.