Bring a large pot of salted water to a boil. Add the linguine and cook according to package instructions until al dente. Reserve 1 cup of pasta water, then drain and set aside.
In a large skillet over medium heat, add the ground beef and diced onion. Season with garlic powder, smoked paprika (if using), Italian seasoning, salt, and black pepper. Cook until the beef is browned and the onion is translucent. Drain any excess fat and set the mixture aside.
In the same skillet, melt the unsalted butter over medium heat. Add the minced garlic and sauté for about 1-2 minutes until fragrant. Pour in the heavy cream, stirring gently to combine. Allow the mixture to simmer for 2-3 minutes until it slightly thickens.
Reduce the heat to low. Stir in the grated Parmesan and mozzarella cheeses until melted and the sauce is smooth. Add red pepper flakes if desired. Return the cooked ground beef to the skillet, mixing to combine with the sauce.
Add the cooked linguine to the skillet, tossing to coat evenly with the cheesy garlic butter sauce. If the sauce is too thick, gradually add the reserved pasta water until you reach your desired consistency. Season with additional salt and black pepper to taste.
Transfer the pasta to serving plates. Garnish with chopped fresh parsley and a sprinkle of additional Parmesan cheese. Serve immediately and enjoy this comforting, flavorful dish!