I would not see both paradigms as opposite. Functional programming was used for a very long time as a main paradigm, but with growing complexity functional programs get hard to maintain. Objects combine data and functions, so they build functional units that are relatively isolated from other objects, so it is far easier to keep things running.
I have been developing software for many years and some of my "object oriented" units have been designed 20 years ago and are still doing a good job.
On the other hand, I had to rewrite old programs, and this was much easier if they have been build with objects. Sometimes, a complete unit with 10.000 lines of code could be substituted by a new object without any big trouble.
But basically, objects also consist of functions. So I think OO is just the next step in evolution