Preheat oven to 350°F. In a large skillet over medium heat, cook bacon until crispy. Remove and drain on a paper towel. Once cooled, crumble into small pieces.
Bring a large pot of salted water to a boil. Add the elbow macaroni and cook according to the package instructions until al dente. Drain and set aside.
In a large saucepan, melt butter over medium heat. Whisk in flour until smooth. Cook for 1–2 minutes, stirring constantly.
Gradually whisk in the milk until smooth. Cook, stirring often, until the sauce thickens, about 5 minutes. Stir in the garlic powder, onion powder, salt, and pepper.
Take the sauce off the heat. Mix in the cheddar and mozzarella cheeses until they are melted and smooth.
Add the cooked macaroni and half of the crumbled bacon to the cheese sauce. Stir until the pasta is well coated.
Pour the macaroni and cheese into a greased 9x13-inch baking dish. Sprinkle the remaining bacon over the top.
Place in the preheated oven and bake for 20 minutes, or until golden and bubbly.
Allow the mac and cheese to cool for a few minutes prior to serving. Top with fresh parsley.