Wales responded to their disappointing defeat to Denmark with a spirited victory over Erling Haaland and ten-man Norway in Cardiff.