Snip the ends off green beans where the bean attached to the vine. You can cut green beans in half or leave them whole.
Prepare ice water bowl by combining cold water and a couple of cups of ice in a large mixing bowl.
Bring a large pot of water to boil and drop green beans in it. Boil them for about 3-4 minutes (depending on thickness).
Take green beans out of the hot water and immediately into the ice water.
After green beans have cooled, take them out onto a paper towel to pat dry.
Preheat a large cooking pan over medium heat.
Slice onions and mushrooms thinly.
Add oil to the pan and onions. Saute until transparent.
Add mushrooms and cook until mostly done.
Mince or press garlic and add it to the pan. Cook until fragrant.
Sprinkle flour over the veggies and stir until veggies are coated in flour.
Start slowly pouring in milk while whisking continuously. Pour in heavy whipping while while still stirring. Continue to stir slowly as the mixture thickens.
Season with salt, and pepper and cook for a couple of minutes. Take off heat.
Preheat oven to 375 and lightly grease a 9x13 casserole dish.
Add green beans into the casserole dish, pour in mushroom cream sauce, and add 1/2 cup of fried onions. Mix everything together until evenly incorporated.
Cover with foil and bake for 35-45 minutes, depending if you want green beans crunchier or softer.
Take the pan out and carefully take off the foil. Spread remaining fried onions over the top and bake for another 7-10 minutes.
Gluten Free Notes:In the mushroom sauce, use all purpose gluten free flour instead of regular flour. For the fried onions, you can get gluten free fried onions that many grocery stores do have in stock, especially during the holiday season. If making homemade fried onions, use gluten free all purpose flour instead of regular flour. (check the post to see how to make homemade fried onions)
Storing and reheating: Store leftover green bean casserole in an air-tight food storage container, in the refrigerator. Properly stored, it should last 3-4 days. To reheat it, you can reheat individual portions in the microwave, in 30 minute increments. You can also reheat it in the oven at 350 until just hot.