Season beef generously. Heat olive oil in a large Dutch oven over high heat. Brown beef in batches without moving, 4 minutes per side. Remove.
Add whole pearl onions to the pot and brown lightly, about 5 minutes. Add garlic and cook 1 minute.
Deglaze with red wine, scraping up all browned bits. Add crushed tomatoes, broth, vinegar, bay leaves, cinnamon stick, allspice, and cloves.
Return beef to pot. The liquid should just cover — add broth if needed.
Bring to a simmer, cover tightly, and cook on low 2.5-3 hours until beef is completely tender and onions are melting.
Remove cinnamon stick and bay leaves. Taste and season. Serve with cauliflower mash.