Udinese recovered from an interval deficit to beat Fiorentina 2-1 and deny the home side a chance to move into fourth place in Serie A.