Roles allow to control the access to Salesforce and have an impact on reports. They have control over the visibility level of organizational users. The users of a specific role level can view, edit and report on all the data, shared/owned by the users who fall below in the hierarchy.
Profiles are mandatory for all users. Profile controls the access to which records a user has in the Salesforce org. It is not possible for the users to work in the Salesforce org, without being assigned to a profile.