A critical bug is show stopper which means the functionality cannot be delivered unless that defect is cleared. And a major bug is a major flaw in functionality but it still can be released.
As a simple example, for an application maintaining list of people. If the user is not able to add/update details of a person in the list, it is a critical bug . But if the user is not able to delete the information of a person it is a major bug.