Heat olive oil in a large skillet over medium-high heat. Cook beef in batches in hot oil until browned completely, about 5 minutes per batch. Remove browned beef cubes to a plate lined with paper towels, keeping skillet over heat and retaining the beef drippings.
Cook and stir onion, celery, and carrots in the retained beef drippings until just softened, 2 to 3 minutes. Stir mushrooms and garlic into the onion mixture.
Pour red wine into the pan; bring to a boil while scraping the browned bits of food off the bottom of the pan with a wooden spoon. Continue cooking the mixture until the wine evaporates, 7 to 10 minutes. Stir tomatoes into the mixture.
Return beef to skillet with potatoes, basil, thyme, marjoram, and sage. Pour beef stock and tomato sauce over the mixture. Bring the liquid to a simmer.
Reduce heat to low and simmer until the beef is very tender and the sauce is thick, 4 to 6 hours.