Homemade Italian Beef

8 servings


5 hours

total time


3 pounds beef necks, or other meaty beef bones like beef shin

2 pounds oxtails

1 medium onion, chopped (about 1 cup)

1 medium carrot, chopped (about 3/4 cup)

4 medium cloves garlic, peeled and left whole

2 bay leaves

10 black peppercorns

4 cloves

1/2 to 1 teaspoon salt

2 green bell peppers

8 Italian rolls

2 pounds thinly sliced roast beef (see note)


Adjust oven rack to lower-middle position and preheat to 450°F (230°C). Meanwhile, trim as much of the meat off the beef neck bones and oxtails as you easily can. Slice large pieces of meat into thin, 1/4-inch-wide strips. Add meat and bones to a rimmed baking sheet and roast, stirring every 10 minutes, until well browned, about 45 minutes total.

Meanwhile, in a large Dutch oven, heat oil over medium-high heat until shimmering. Add onion, carrot, and garlic, and cook, stirring often, until onion starts to brown, about 7 minutes. Set aside.

Transfer browned beef and bones to Dutch oven. Set baking sheet over medium heat, add 1 cup water, and bring to a simmer while scraping up any browned bits, then pour liquid into Dutch oven.

Add enough additional water to almost cover the beef and bones (about 8 cups; 2L). Add bay leaves, peppercorns, and cloves. Bring to a simmer over medium-high heat, then reduce heat to maintain a very slow simmer. Cook, skimming off any foam that rises to the surface, until liquid reduces to 4 cups, 4 to 5 hours.

Meanwhile, place green peppers in a cast-iron or oven-safe stainless-steel skillet. Transfer to the 450°F oven and cook, flipping every 10 minutes, until lightly blackened all over, about 40 minutes total. Carefully remove from the oven and set aside. When cool enough to handle, remove skin, stems, and seeds. Slice into 1/4-inch thick strips. Set aside.

Strain beef broth into a medium-sized saucepan, discarding the meat (or saving for another use), bones, and vegetables. Using an instant-read or probe thermometer, heat over medium-low heat until it reaches 140°F (60°C), then adjust heat as needed to maintain temperature. Season broth with salt and black pepper.

Wrap the rolls in aluminum foil and place in the 450°F oven. Cook until hot, 8 to 10 minutes. Remove rolls from oven, but keep them wrapped.

Divide roast beef into 1/4-pound (113g) portions. Add one portion of roast beef to the broth one slice at a time, then slowly stir with a fork until all slices are warmed through, about 30 seconds. Unwrap one roll, and carefully slice horizontally most of the way through, making sure top and bottom are still attached. Use a fork to remove meat from the broth and stuff it in the roll. Top with some giardiniera and roasted peppers. Repeat with remaining beef and bread.

If you want the sandwich dipped, use a pair of tongs to dip the finished sandwich back in the broth. Eat at once, with a lot of napkins close by.

8 servings


5 hours

total time
Start Cooking