In a large pot or Dutch oven over medium-high heat, brown the ground beef with the diced onion for 6-8 minutes, breaking up the meat as it cooks.
Add the minced garlic and cook for another minute until fragrant.
Drain excess fat if needed, then add the penne pasta, crushed tomatoes, beef broth, Italian seasoning, salt, and pepper. Stir well to combine.
Bring to a boil, then reduce heat to medium-low. Cover and simmer for 12-15 minutes, stirring occasionally, until pasta is tender.
Remove from heat and stir in the mozzarella cheese until melted and creamy.
Let stand for 3-5 minutes to thicken, then garnish with fresh parsley and serve hot.