Yes, there is very big difference. Procedural programming means that you break programs into smaller pieces - procedures. Computations are made, generally, in sequence, with control structures like conditional instructions, iterations etc. In functional programming, main computations are made by calling functions which return values. And as in functions in mathematics, generally you don't care, what happens inside the function - only the result is important - there are no side effects.
I think the key differences are immutability and recursion instead of iteration.
(This is an informal explanation. For more strict definition see wikipedia: http://en.wikipedia.org/wiki/Functional_programming