From the MS documentation:
Returns the last identity value inserted into an identity column in the same scope. A scope is a module: a stored procedure, trigger, function, or batch. Therefore, if two statements are in the same stored procedure, function, or batch, they are in the same scope.
Which means that provided you insert you data in the same SP, It will return the ID for the first insert to put into the second table, and if that table also has an IDENTITy column it will change for the next row.
If you want the whole of the second table to INSERT the same ID value to many rows, then store the value it returns and INSERT that:
INSERT INTO TableA ([Desc]) VALUES ('Hello');
DECLARE @lastID INT = SCOPE_IDENTITY();
INSERT INTO TableB (FID, [Desc]) VALUES (@lastID, 'World1');
INSERT INTO TableB (FID, [Desc]) VALUES (@lastID, 'World2');
INSERT INTO TableB (FID, [Desc]) VALUES (@lastID, 'World3');