Bring a large pot of lightly salted water to a boil. Add penne and cook, stirring occasionally, until tender yet firm to the bite, about 11 minutes. Drain.
While pasta cooks, heat oil in a large skillet over medium-high heat. Add cauliflower; cook and stir for 3 minutes. Add beef, onions, and garlic; cook and stir until beef is browned and crumbly, 5 to 7 minutes. Stir in tomatoes, parsley, salt, and pepper flakes. Cover and cook for 10 minutes.
Drain penne. Pour into the skillet and stir to combine. Serve.