Cut the beef into 2" chunks. Season with salt and pepper and let sit for 30-60 minutes.
Sprinkle the flour over top and toss to coat the beef pieces.
Preheat the oven to 350°F.
Heat the oil in a cast iron Dutch oven over medium high heat. Add ⅓ of the beef and brown on all sides. Remove and set aside.
Repeat with the second and third batches of beef. Cooking in batches ensures the pot doesn't overcrowd, helping the beef to brown faster.
Add the onion and garlic and sauté for 2-3 minutes, until starting to brown around the edges.
Add the tomato paste, paprika, soy sauce, marjoram and bay leaf and stir together. Cook for 1-2 minutes, being careful not to let it burn.
Add the wine and cook for 2-3 minutes, until most of the liquid has evaporated.
Add the beef, canned tomatoes, beef stock, red pepper and carrots and bring to a simmer.
Place the pot, uncovered, in the oven and cook for 3 hours. Check every hour and once it has reduced and thickened by about ⅓ to ½ (depending on preference), place the lid on for the remaining of the cook time.
Remove and serve over egg noodles, rice or mashed potatoes.
Notes
Brown the beef in batches to ensure it browns, not steams. Crowding the pan will prevent it from browning, where so much flavor comes from.
For thicker goulash, cook longer with the lid off and for thinner goulash, put the lid on as soon as it's reached the desired consistency.
Wait to adjust the flavor for salt until it has fully reduced. It will get saltier as it cooks down.
This hearty beef stew can be made on the stovetop also. Just bring to a simmer and reduce heat to a very low simmer. Follow the same instructions as the oven instructions.