Start by tying each shank with kitchen twine to keep the meat intact during cooking. Generously season all sides with salt and black pepper.
Coat the seasoned shanks in flour, shaking off any excess. This step helps create a crispy, golden crust.
Heat olive oil in a Dutch oven over medium-high. Sear the shanks on all sides until browned (around 6–7 minutes per side). Remove and set aside.
Add the chopped onion, carrots, and celery (the classic “sofrito” base) to the same pot. Cook for about 5 minutes until softened, then add minced garlic for another 30 seconds.
Pour in wine and scrape the bottom of the pot to lift up the flavorful browned bits. After a quick simmer, add the crushed tomatoes, broth, bay leaves, thyme, and lemon zest.
Return the shanks to the pot, nestling them into the sauce. Cover and simmer on low for 2–2.5 hours, checking occasionally to ensure the sauce doesn’t dry out. Add broth if needed.
Once fork-tender, remove the shanks and discard the twine. Serve the meat with the sauce spooned on top, and sprinkle gremolata for a fresh, zesty finish.