What is the difference between Big-O and worst-case run time?
Wikipedia says:


  Big O notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity.


So it is not the definition of the "worst case".

Wikipedia defines best, worst, and average cases as 


  In computer science, best, worst, and average cases of a given algorithm express what the resource usage is at least, at most and on average, respectively.


By resource we usually refer to time or/and space (memory) required to solve a certain problem.

It also says: 


  Big O notation is a convenient way to express the worst-case scenario for a given algorithm, although it can also be used to express the average-case - for example, the worst-case scenario for quicksort is $O(n^2)$, but the average-case run-time is $O(n\log{n})$.


To sum up: Big-O notation is a pure mathematical concept and notation, which is used in Computer science to express the worst-case scenario for a given algorithm.

Here we have some useful posts:


How does one know which notation of time complexity analysis to use?
How do O and Ω relate to worst and best case?
Sorting functions by asymptotic growth