I am not expert in LTE radio but as far as I'm aware, two cells belonging to the same eNodeB have separate protocol stack.
It means that when an UE is connected to one cell, UE context is maintained in that particular cell. When UE sends measurement report, eNodeB application decides to move UE to another cell. In order to complete UE movement from one cell to another cell, eNodeB application creates UE context at second cells (in all layers) and asks UE to move to target cell by sending RRC Connection Reconfiguration (with mobility info).
UE does RACH to target cell and completes the handover procedure by exchanging RRC connection reconfiguration and RRC connection reconfiguration complete message.