Fill a large pot with lightly salted water and bring to a rolling boil over high heat. Once the water is boiling, stir in the penne and return to a boil. Cook the pasta uncovered, stirring occasionally until the pasta has cooked through but is still firm to the bite, about 11 minutes. Drain well in a colander set in the sink.
While the pasta cooks combine the melted margarine and garlic in a shallow dish. Place the flour in another dish. Dip the fillets in the garlic butter mixture and then immediately coat with the flour. Heat olive oil in a large frypan over medium-high heat. Cook the fish in the oil until golden brown, turning once, about 5 minutes total.
Pour the cream, lemon juice and remaining garlic and margarine mixture into the frypan. Stir in the chilli, salt, black pepper, cayenne pepper, paprika and garlic powder. Bring to a simmer and allow to cook until sauce has reduced slightly and fish flakes easily with a fork; about 2 minutes. Mix the baby spinach into the sauce and cook until wilted. Stir in the chopped tomato and the cooked pasta.