Coat beef cubes with flour, salt, and pepper.
Heat olive oil in Dutch oven over high heat until very hot.
Sear beef in batches until golden brown on all sides, then remove from pot.
Reduce heat to medium and add onions, cooking 1 minute while stirring.
Return beef to pot and add Guinness, beef broth, garlic, tomato paste, celery, and balsamic vinegar.
Cover, reduce heat to low, and simmer 2 to 2.5 hours until beef is fork-tender and liquid has thickened.
Remove celery pieces and adjust seasoning with salt and pepper before serving.