A resource allocation method, comprising: determining a resource block allocation field in downlink control information, wherein a size of the resource block allocation field is ⌈ log 2 ⌊ N RB UL 6 ⌋ ⌉ + 5 bits, and N RB UL is an uplink bandwidth configuration, wherein when a value indicated by five least significant bits of the resource block allocation field is greater than 20, the resource block allocation field is used to indicate a first resource indication value, wherein the first resource indication value is used to indicate a quantity of resource block groups allocated to a terminal device (116, 122) and an index of a starting resource block group allocated to the terminal device (116, 122), the quantity of allocated resource block groups is greater than or equal to 3 and is less than or equal to 8, and one resource block group comprises three resource blocks; determining a second resource indication value, wherein when (L CRBGs -1)≤(M/2), the second resource indication value is equal to (2N RBG -K)(L CRBGs -3)+RBG START, or when (L CRBGs -1)>(M/2), the second resource indication value is equal to (2N RBG -K)(M-L CRBGs +1)-RBG START -1, wherein N RBG is a quantity of resource block groups comprised in all narrowbands of an uplink bandwidth, each narrowband comprises 6 resource blocks, a value of N RBG is equal to 2 ∗ ⌊ N RB UL 6 ⌋, L CRBGs is the quantity of resource block groups allocated by an access network device, RBG START is the index of the starting resource block group allocated by the access network device, and wherein when the uplink bandwidth is 25 RBs, 50 RBs, 75 RBs, or 100 RBs, K=9 and M=8, or when the uplink bandwidth is 15 RBs, K=5 and M=4, and wherein the first resource indication value is equal to: floor(second resource indication value/11) ∗ 32+(second resource indication value mod 11)+21, where floor is a round down function; sending the downlink control information to the terminal device (116, 122); and receiving, on at least one resource block allocated to the terminal device (116, 122), a physical uplink shared channel from the terminal device (116, 122). determining a resource block allocation field in downlink control information, wherein a size of the resource block allocation field is ⌈ log 2 ⌊ N RB UL 6 ⌋ ⌉ + 5 bits, and N RB UL is an uplink bandwidth configuration, wherein when a value indicated by five least significant bits of the resource block allocation field is greater than 20, the resource block allocation field is used to indicate a first resource indication value, wherein the first resource indication value is used to indicate a quantity of resource block groups allocated to a terminal device (116, 122) and an index of a starting resource block group allocated to the terminal device (116, 122), the quantity of allocated resource block groups is greater than or equal to 3 and is less than or equal to 8, and one resource block group comprises three resource blocks; determining a second resource indication value, wherein when (L CRBGs -1)≤(M/2), the second resource indication value is equal to (2N RBG -K)(L CRBGs -3)+RBG START, or when (L CRBGs -1)>(M/2), the second resource indication value is equal to (2N RBG -K)(M-L CRBGs +1)-RBG START -1, wherein N RBG is a quantity of resource block groups comprised in all narrowbands of an uplink bandwidth, each narrowband comprises 6 resource blocks, a value of N RBG is equal to 2 ∗ ⌊ N RB UL 6 ⌋, L CRBGs is the quantity of resource block groups allocated by an access network device, RBG START is the index of the starting resource block group allocated by the access network device, and wherein when the uplink bandwidth is 25 RBs, 50 RBs, 75 RBs, or 100 RBs, K=9 and M=8, or when the uplink bandwidth is 15 RBs, K=5 and M=4, and wherein the first resource indication value is equal to: floor(second resource indication value/11) ∗ 32+(second resource indication value mod 11)+21, where floor is a round down function; sending the downlink control information to the terminal device (116, 122); and receiving, on at least one resource block allocated to the terminal device (116, 122), a physical uplink shared channel from the terminal device (116, 122).