Heat oven to 350 degrees. Season brisket with salt and pepper. In a Dutch oven over medium-high setting, heat olive oil and brown brisket on both sides, about 5 minutes per side. Remove to a plate.
Add onion, carrot and celery to the pot and saute about 5 minutes. Add garlic and saute about 5 minutes more. Add onions, wine, thyme, and bay leaves. Bring to a boil and cook until liquid is reduced by half, about 10 minutes. Stir in tomato paste, Worcestershire sauce, and stock and bring to a boil.
Add brisket, and any juices that have accumulated, back to the pot. Nestle into the vegetables and liquid. Cover and cook in oven about 3 hours, or until very tender, turning the brisket over every 45 minutes or so.
Transfer meat to a platter and let rest 20 minutes. Strain pot juices and discard solids. Let juices sit until the fat separates. Skim off the fat; add pearl onions, then bring the sauce to a boil and reduce by half.
Slice meat thinly across the grain and place on a serving platter. Spoon sauce over the top and serve remaining sauce in a gravy boat.
You may also make this dish a day ahead. Just cover meat and sauce separately and chill. Before serving, arrange meat in a baking dish, cover with foil, and rewarm in a 350 degrees oven about 40 minutes.