Valencia hang on to beat Real Madrid 2-1