I have done this before....for fun actually as a learning exercise in a SharePoint Designer 2013 workflow for SharePoint Online using the REST API.
I'm sure that you know, but you need to make use of the 'Call HTTP Web Service' action within an App Step.
Use this REST endpoint to break permissions on the item:
/_api/web/lists/getByTitle('YOUR LIST TITLE HERE')/items('YOUR ITEM ID HERE')/breakroleinheritance(copyRoleAssignments=true,clearSubscopes=true)
Use this REST endpoint to assign permissions to a user:
/_api/web/lists/getByTitle('YOUR LIST TITLE HERE')/items('YOUR ITEM ID HERE')/roleassignments/addroleassignment(principalId='ID OF USER TO ASSIGN PERMISSIONS TO',roleDefId='PERMISSION ID')
Within these endpoints, only replace the single-quoted words in CAPS with your values or workflow variables, which is what I did. These should be the REST endpoints that you need to be off on your way. If you need more help or clarification, please post in this thread. I will check it from time to time to see the outcome. Have a good one!
Here is a link to invaluable information on this subject, which is what I also used some time ago to accomplish this task: